由于您似乎不允许使用 ORM,因此您可以使用通用方法将数据从DataTable中提取到对象中,如下所示:
public static List<T> DataTableToEntities<T>(DataTable dt)
{
string propName = string.Empty;
List<T> entityList = new List<T>();
foreach (DataRow dr in dt.Rows)
{
T entity = System.Activator.CreateInstance<T>();
System.Reflection.PropertyInfo[] entityProperties = typeof(T).GetProperties();
foreach (System.Reflection.PropertyInfo item in entityProperties)
{
propName = item.Name;
if (dt.Columns.Contains(propName))
{
item.SetValue
(
entity,
dr[propName].GetType().Name.Equals(typeof(DBNull).Name)? null : dr[propName],
null
);
}
}
entityList.Add(entity);
}
return entityList;
}
上述方法将您的 DataTable 列与类属性相匹配。您的 DataTable 列只需要与您的类属性具有相同的名称即可。