class ModelHandler<T> where T : new()
{
public List<T> FillModel(DataTable dt)
{
if (dt == null || dt.Rows.Count <= 0)
{
return null;
}
List<T> models = new List<T>();
foreach (DataRow row in dt.Rows)
{
models.Add(FillModel(row));
}
return models;
}
public T FillModel(DataRow row)
{
if (row == null)
{
return default(T);
}
//获取模型实体对象;
T model = new T();
//获取模型实体对象类型;
Type type = model.GetType();
//获取模型实体对象类公开属性;
PropertyInfo[] propertyinfos = type.GetProperties();
//遍历模型实体对象类公开属性;
foreach (PropertyInfo propertyinfo in propertyinfos)
{
//取得实体对象类公开属性名;
string propertyinfoName = propertyinfo.Name;
//判断DataRow数据类型是否为DBNull.Value
if (row[propertyinfoName] != DBNull.Value)
{
//将DataRow的数值填充至对应的模型实体对象属性中;
type.GetProperty(propertyinfoName).SetValue(model, row[propertyinfoName], null);
}
}
return model;
}
}