列名已属于C#中的此DataTable错误

本文关键字:DataTable 错误 属于 | 更新日期: 2023-09-27 18:20:05

使用此代码似乎无法传递此错误消息。

System.Data.DuplicateNameException: A column named 'Url' already belongs to this DataTable.

foreach (var user in users.Users)
{
      using (DataTable table = new DataTable())
      {
         table.Clear();
         for (int i = 0; i < users.Users[0].GetType().GetProperties().Count(); i++)
         {
            table.Columns.Add(users.Users[0].GetType().GetProperties()[i].Name);
            Console.WriteLine(table.Columns.Add(users.Users[0].GetType().GetProperties()[i].Name));
         }
      }
}

有什么想法吗?

更新

var properties = users.Users[0].GetType().GetProperties();    
for (int i = 0; i < properties.Count(); i++) 
{
    table.Columns.Add(properties[i].Name, typeof(String));
}

因为我不知道前臂是什么类型的。此:

var properties = users.Users[0].GetType().GetProperties();
foreach (PropertyInformation prop in properties)
{
     table.Columns.Add(properties.);
     Console.WriteLine(prop.Name);
}

给了我Cannot convert type 'System.Reflection.PropertyInfo' to 'System.Configuration.PropertyInformation'

不管怎样,我能想办法把正确的类型放进去吗@barrick

列名已属于C#中的此DataTable错误

错误不会说谎。在Console.WriteLine()调用中,您将再次添加列,这将导致问题。

尝试:

var properties = users.Users[0].GetType().GetProperties();
foreach (PropertyInfo prop in properties)
{
    table.Columns.Add(prop.Name);
    Console.WriteLine(prop.Name);
}