DataTable转成实体列表 和 DataRow转成实体类

时间:2023-03-10 01:09:05
DataTable转成实体列表 和 DataRow转成实体类
         #region DataTale转为实体列表
/// <summary>
/// DataTale转为实体列表
/// </summary>
/// <typeparam name="T">实体类类型</typeparam>
/// <param name="table">DataTable</param>
/// <returns>List<T></returns>
public List<T> DataTableToModelList<T>(DataTable table)
{
List<T> list = new List<T>();
T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
foreach (DataRow row in table.Rows)
{
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (table.Columns.Contains(tempName))
{
object value = row[tempName];
if (value.GetType() == typeof(System.DBNull))
{
value = null;
}
pro.SetValue(t, value, null);
}
}
list.Add(t);
}
return list;
}
#endregion #region DataRow转为实体类
/// <summary>
/// DataRow转为实体类
/// </summary>
/// <typeparam name="T">实体类类型</typeparam>
/// <param name="row">DataRow</param>
/// <returns>T</returns>
public T DataRowToModel<T>(DataRow row)
{ T t = default(T);
PropertyInfo[] propertypes = null;
string tempName = string.Empty;
t = Activator.CreateInstance<T>();
propertypes = t.GetType().GetProperties();
foreach (PropertyInfo pro in propertypes)
{
tempName = pro.Name;
if (row.Table.Columns.Contains(tempName))
{
object value = row[tempName];
if (value.GetType() == typeof(System.DBNull))
{
value = null;
}
pro.SetValue(t, value, null);
}
}
return t;
}
#endregion

学习记录