您的位置:首页 > 编程语言 > C#

C# 中DataTable转成模型List

2016-05-10 18:00 363 查看
C# 中DataTable转成模型List

引入using System.Reflection; 命名空间

使用注意实体类的属性名必须和DataTable的列名一致

使用:

DBList<StorageReport> dblist = new DBList<StorageReport>(dt);


模型:

public class StorageReport
{
public string pqty { get; set; }
public string dqty { get; set; }
public string sqty { get; set; }
}


代码:

public class DBList<T>:List<T> where T:new()
{
public DBList(DataTable dt)
{
foreach (T value in getItemValue<T>(dt))
{
this.Add(value);
}
}

private List<T> getItemValue<T>(DataTable dt) where T : new()
{
List<T> items = new List<T>();
T model = new T();

//取出所有属性字段
PropertyInfo[] propertys = model.GetType().GetProperties();
foreach (DataRow dr in dt.Rows)
{
T item = new T();
foreach (PropertyInfo pinfo in propertys)
{
string value = dt.Columns.Contains(pinfo.Name) ? dr[pinfo.Name].ToString() : "";
pinfo.SetValue(item, value, null);
}
items.Add(item);
}
return items;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: