DataTable转List,DataTable转为Model对象帮助类

public class ModelConvertHelper<T> where T : new()
{
public static List<T> ConvertToModel(DataTable dt)
{
// 定义集合
List<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
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 (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
ts.Add(t);
}
return ts;
}
public static T ConvertToInfo(DataTable dt)
{
// 定义集合
T ts = new T();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
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 (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
return t;
}
return new T();
}
}
 

最新文章

  1. remove name=&quot;ProxyModule“会导致重复执行
  2. LuaSrcDiet工具介绍(lua源码处理软件)
  3. 底部漂浮DIV
  4. SDWebImage
  5. Java泛型总结
  6. Swift游戏实战-跑酷熊猫 00 游戏预览
  7. 数字集成电路设计-8-一个简单sobel图像边缘检测加速器的设计,实现,仿真与综合
  8. Windows上部署Redis
  9. JavaSE学习总结第21天_IO流3
  10. 怎样看paper 最有效率
  11. conda创建py27虚拟环境安装theano(anaconda3)
  12. -1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常
  13. npm安装webpack失败(mac和window都可能会遇到这样的情况,以下问题主要以mac为例)
  14. shell script exit if any command fails
  15. input属性为number时,如何去掉右边的 +、-号
  16. CentOS 7 安装 .Net Core 2.0 详细步骤
  17. sessionStorage和localStorage的区别
  18. PHP7 学习笔记(五)安装event扩展(libevent)
  19. gitlab:开发+测试+发布的全流程图
  20. Git Step by Step – (3) Git对象模型

热门文章

  1. MySQL Select语句的执行顺序
  2. Java生成随机数列表
  3. SQL Prompt 注册后隔一段时间莫名无法使用的处理
  4. ACCESS打得开mdb,但打不开表,弹框提示未知错误。
  5. IOS 点击按钮拨号
  6. SparkSQL读取HBase数据
  7. oc和swift对代码的分组,方便代码查找和导航用
  8. OpenCV入门学习资料汇总
  9. Web SQL与indexedDB
  10. R的数据结构--数组