我似乎无法使用此代码传递此错误消息。
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));
}
因为我不知道使用foreach的类型是什么。这样:
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
答案 0 :(得分:3)
错误不会存在。在Console.WriteLine()
调用中,您再次添加列,这将导致问题。
尝试:
var properties = users.Users[0].GetType().GetProperties();
foreach (PropertyInfo prop in properties)
{
table.Columns.Add(prop.Name);
Console.WriteLine(prop.Name);
}