1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Reflection;
  6. using System.Web;
  7.  
  8. /// <summary>
  9. /// DbHelper 的摘要说明
  10. /// </summary>
  11. public class DbHelper
  12. {
  13. public DbHelper()
  14. {
  15. //
  16. // TODO: 在此处添加构造函数逻辑
  17. //
  18. }
  19. /// <summary>
  20. /// 实体转换辅助类
  21. /// </summary>
  22. public class ModelConvertHelper<T> where T : new()
  23. {
  24. public static List<T> ConvertDataTableToList(DataTable dt)
  25. {
  26. // 定义集合
  27. List<T> ts = new List<T>();
  28. // 获得此模型的类型
  29. Type type = typeof(T);
  30. string tempName = "";
  31.  
  32. foreach (DataRow dr in dt.Rows)
  33. {
  34. T t = new T();
  35. // 获得此模型的公共属性
  36. PropertyInfo[] propertys = t.GetType().GetProperties();
  37. foreach (PropertyInfo pi in propertys)
  38. {
  39. tempName = pi.Name; // 检查DataTable是否包含此列
  40.  
  41. if (dt.Columns.Contains(tempName))
  42. {
  43. // 判断此属性是否有Setter
  44. if (!pi.CanWrite) continue;
  45.  
  46. object value = dr[tempName];
  47. if (value != DBNull.Value)
  48. pi.SetValue(t, value, null);
  49. }
  50. }
  51. ts.Add(t);
  52. }
  53. return ts;
  54. }
  55. public static IList<T> ConvertDataTableToIList(DataTable dt)
  56. {
  57. // 定义集合
  58. IList<T> ts = new List<T>();
  59. // 获得此模型的类型
  60. Type type = typeof(T);
  61. string tempName = "";
  62.  
  63. foreach (DataRow dr in dt.Rows)
  64. {
  65. T t = new T();
  66. // 获得此模型的公共属性
  67. PropertyInfo[] propertys = t.GetType().GetProperties();
  68. foreach (PropertyInfo pi in propertys)
  69. {
  70. tempName = pi.Name; // 检查DataTable是否包含此列
  71.  
  72. if (dt.Columns.Contains(tempName))
  73. {
  74. // 判断此属性是否有Setter
  75. if (!pi.CanWrite) continue;
  76. object value = dr[tempName];
  77. if (value != DBNull.Value)
  78. pi.SetValue(t, value, null);
  79. }
  80. }
  81. ts.Add(t);
  82. }
  83. return ts;
  84. }
  85. }
  86. }

Datatable转实体 实体转换辅助类的更多相关文章

  1. DataTable转List<Model>通用类【实体转换辅助类】

    /// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...

  2. .NET 实体转换辅助类

    /// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...

  3. C# DataTable转换成实体列表 与 实体列表转换成DataTable

    /// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...

  4. (转)DATATABLE(DATASET)与实体类之间的互转.

    转自:http://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html dataset和实体类 之间的转换 //dataset转实体类  代 ...

  5. DataTable转换为Model实体对象

    记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反 ...

  6. C# 将html实体编码转换到正常字符 & #40;格式

    获取到html实体编码字符后,通过正则获取其中的html实体编码,再统一强制转换到正常字符: 代码如下: string strformat = item.value7; //将html实体编码转换到正 ...

  7. Entity Framework入门教程(10)---离线场景保存和删除实体/实体图集

    离线场景保存和删除实体/实体图集 这一节的内容是在离线场景中保存实体和实体图集 在离线场景中,当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中 ...

  8. WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体

    最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[] ...

  9. C#把 DataTable转换为Model实体

    public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List& ...

随机推荐

  1. Maven让资源文件处理插件能够解析资源文件中的Maven属性

    <build> <resources> <resource> <directory>${project.basedir}/src/main/resour ...

  2. 〖Linux〗使用命令行切换触摸板的状态on/off/toggle

    最近发现在Ubuntu13.10中使用Fn+F9对触摸板的控制操作不灵了: 并且在黑夜.外置键盘时,按下这个组合键也很不方便,由此便想到使用命令行来切换触摸板状态: 脚本:~/bin/touchpad ...

  3. great tips in soapui

    from this site :http://onebyteatatime.wordpress.com/2009/04/18/soapui-tips-n-tricks-part-2/

  4. 【Linux】特殊符号$$,$#,$?等解释

    在linux系统中有很多的特殊符号,他们具有特殊的意义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell的第一个参数 $2 是传递给该shell的第二个参数 $@ 是传递 ...

  5. 【原创】kerberos无密码登录

    通常在远程客户端上登录kerbros都需要密码,在学习hadoop的时候提到了ktutil这个工具,这里将使用方法贴出来. 用到的命令如下: 1.ktutil 2.add_entry -passwor ...

  6. notepad++插件实现json、xml格式化

    notepad++比较出色的免费的数据编辑.格式化工具... 现在json.xml文件很流行.格式化也是必须的,方便查看关键信息! 01.下载notepad++及相关插件 npp_7.5.5-x86: ...

  7. Spring Cloud开发实践 - 03 - 接口实现和下游调用

    接口实现 Scot Commons Impl 接口实现模块 scot-commons-impl, 一方面实现了 scot-commons-api 的接口, 一方面将自己暴露为 REST 服务. 有4个 ...

  8. navigationItem.rightBarButtonItem 设置背景图片,颜色更改解决的方法

    self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@& ...

  9. Ubuntu 12.04安装VMware Workstation8.0.3

    2012-06-18 12:52   Ubuntu安装VMware Workstation8.0.3   由于使用Ubuntu的人比较少,网上关于Ubuntu的资料也很少,笔者在安装VMware Wo ...

  10. Bean的加载过程

    参考地址: http://blog.csdn.net/jy0902/article/details/50519115 http://blog.csdn.net/architect0719/articl ...