【发布时间】:2015-04-28 23:37:58
【问题描述】:
我正在寻找一种循环 DataSet 以填充集合的方法 列出 DataSet 中的数据可能位于 DataSet 中的多个 DataTables 中。我有一个对象,其中包含所需的列名列表。如果我将对象循环到数据集,它将不起作用。
public List<Customer> BuildCustomerListMultiFile(DataSet ds, Customer oCustomer)
{
List<Customer> lCustomers = new List<Customer>();
foreach (PropertyInfo p in typeof(Customer).GetProperties())
{
Customer oC = new Customer();
foreach(DataTable dt in ds.Tables)
{
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
{
if (p.Name == dc.ColumnName)
{
p.SetValue(oC, dr[dc].ToString());
}
}
}
}
lCustomers.Add(oC);
}
return lCustomers;
}
我确实看过 How to Convert DataTable to List using Reflections 如果我使用的是 DataTable,这将起作用,但我不确定如何使其与具有多个 DataTables 的 DataSet 一起使用。
【问题讨论】:
-
你必须明确告诉将哪个数据表转换为哪种类型的列表
-
数据可以在所有或一个数据表中,这是一个匹配系统,人们上传多个 csv,然后将它们转换为数据集中的数据表。它们将对象与数据表中的列名相匹配。
-
你必须写条件块
标签: c# reflection dataset