#region DataTable转List
/// <summary>
/// DataTable装换成List集合
/// </summary>
/// <param name="dt">DataTable数据源</param>
/// <returns></returns>
public List<Royal.Reporting.Core.Domain.Customer>
GetListFromDataTable(DataTable dt)
{
// 定义集合
List<Royal.Reporting.Core.Domain.Customer> ts =
new List<Royal.Reporting.Core.Domain.Customer>
();
// 获得此模型的类型
Type type =
typeof(Royal.Reporting.Core.Domain.Customer);
//定义一个临时变量
string tempName =
string.Empty;
//遍历DataTable中所有的数据行
foreach (DataRow dr
in dt.Rows)
{
Royal.Reporting.Core.Domain.Customer t =
new Royal.Reporting.Core.Domain.Customer();
// 获得此模型的公共属性
PropertyInfo[] propertys =
t.GetType().GetProperties();
//遍历该对象的所有属性
foreach (PropertyInfo pi
in propertys)
{
tempName = pi.Name;
//将属性名称赋值给临时变量
//检查DataTable是否包含此列(列名==对象的属性名)
if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite)
continue;
//该属性不可写,直接跳出
//取值
object value =
dr[tempName];
if (tempName ==
"PayOn")
{
value =
Convert.ToDateTime(dr[tempName].ToString());
}
//如果非空,则赋给对象的属性
if (value !=
DBNull.Value)
pi.SetValue(t, value, null);
}
}
//对象添加到泛型集合中
ts.Add(t);
}
return ts;
}
#endregion
下次再来讲解!
转载于:https://www.cnblogs.com/lidaofei1991/articles/3630590.html