您的位置:首页 > 其它

将Datatable转换为泛型列表对象

2011-07-26 22:08 316 查看
/// <summary>
/// 将Datatable转换为泛型列表对象
/// </summary>
/// <typeparam name="T">泛型T的数据类型</typeparam>
/// <param name="dataTable">待转换的DataTable对象</param>
/// <returns>目标泛型列表对象</returns>
protected List<T> DataTableToList<T>(DataTable dataTable)
{
List<T> list = new List<T>();
Type targetType=typeof(T);
PropertyInfo[] allPropertyArray = targetType.GetProperties();
foreach (DataRow rowElement in dataTable.Rows)
{
T element=Activator.CreateInstance<T>();
foreach (DataColumn columnElement in dataTable.Columns)
{
foreach (PropertyInfo property in allPropertyArray)
{
if(property.Name.Equals(columnElement.ColumnName))
{
if (rowElement[columnElement.ColumnName] == DBNull.Value)
{
property.SetValue(element, null, null);
}
else
{
property.SetValue(element, rowElement[columnElement.ColumnName], null);
}
}
}
}
list.Add(element);
}
return list;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: