List<t_emp> 转DataTable

--(1)
private static DataTable GetBatchInsertDataTable(List 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;

}

--(2)
private DataTable listToDataTable(List ListItem)
{
//实列化DataTable对象
var dt = new DataTable(typeof(T).Name);

//通过反射获取List实体的属性信息
PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

//给DataTable 添加定义
foreach (var propertyInfo in propertyInfos)
{
	dt.Columns.Add(propertyInfo.Name, propertyInfo.PropertyType);
}

//给DataTable 添加数据
foreach (T item in ListItem)
{
	var values = new object[propertyInfos.Length];
	for (int i = 0; i < propertyInfos.Length; i++)
	{
		values[i] = propertyInfos[i].GetValue(item);
	}
	dt.Rows.Add(values);
}

//返回DataTable
return dt;

}

posted on 2022-05-13 11:05  manber  阅读(25)  评论(0)    收藏  举报

导航