在批量插入数据时数据源会使用DataTable,如果传入一个List集合进行插入,需要把List集合转为DataTable类型的数据源,现在写一个通用的List集合转化为DataTable类型的方法
private static DataTable GetBatchInsertDataTable<T>(List<T> list)
{
DataTable dt = new DataTable();
Type t = typeof(T);
PropertyInfo[] propertys = t.GetProperties();
foreach (var item in propertys)
{
dt.Columns.Add(item.Name);
}
foreach (var item in list)
{
ArrayList tempList = new ArrayList();
foreach (var p in propertys)
{
object obj = p.GetValue(item);
tempList.Add(obj);
}
dt.LoadDataRow(tempList.ToArray(),true);
}
return dt;
}