运用泛型和反射实现的转换,很给力。代码中掺杂详尽注释,稍微了解一下泛型和反射便可以了解转换的实质。可以直接复制粘贴进行调用哦。

public class DtConverToList<T> where T : new()
{public static List<T> DtToList(DataTable dt){//定义集合List<T> ListCollection = new List<T>(dt.Rows.Count);//获得 T 模型类型Type T_type = typeof(T);//获得 T 模型类型公共属性PropertyInfo[] Proper = T_type.GetProperties();//临时变量,存储变量模型公共属性Namestring Tempname = "";//遍历参数 DataTable的每行foreach (DataRow Dr in dt.Rows){//实例化 T 模版类T t = new T();//遍历T 模版类各个属性
            #regionforeach (PropertyInfo P in Proper){//取出类属性之一Tempname = P.Name;//判断DataTable中是否有此列if (dt.Columns.Contains(Tempname)){//判断属性是否可写属性if (!P.CanWrite){continue;}try{//得到Datable单元格中的值object value = Dr[Tempname];//得到 T 属性类型Type ProType = P.PropertyType;//判断类型赋值if (value != DBNull.Value){//if (value.GetType() == ProType){P.SetValue(t, value, null);}else{if (ProType == typeof(string)){string Temp = value.ToString();P.SetValue(t, Temp, null);}else if (ProType == typeof(byte)){byte Temp = Convert.ToByte(value);P.SetValue(t, Temp, null);}else if (ProType == typeof(short)){short Temp = short.Parse(value.ToString());P.SetValue(t, Temp, null);}else if (ProType == typeof(long)){long Temp = long.Parse(value.ToString());P.SetValue(t, Temp, null);}else if (ProType == typeof(Int64)){Int64 Temp = Convert.ToInt64(value);P.SetValue(t, Temp, null);}else if (ProType == typeof(Int32)){Int32 Temp = Convert.ToInt32(value);P.SetValue(t, Temp, null);}else if (ProType == typeof(Int16)){Int16 Temp = Convert.ToInt16(value);P.SetValue(t, Temp, null);}else{object Temp = Convert.ChangeType(value, ProType);P.SetValue(t, Temp, null);}}}}catch (Exception){throw;}}}
            #endregionListCollection.Add(t);}return ListCollection;}
}

C# DataTable 转换成ListT相关推荐

  1. DataTable转换成IList

    本文转载自http://blog.csdn.net/chentaihan/article/details/6407284 作者:陈太汉     在用C#作开发的时候经常要把DataTable转换成IL ...

  2. C#将DataTable转换成list的方法

    本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...

  3. badatatable转成json_C# DataTable 转换成JSON数据 三种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...

  4. 简单的反射 把datatable 转换成list对象

    /// <summary>/// 把datatable 转换成list对象/// </summary>/// <typeparam name="T"& ...

  5. list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码

    前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型).第一反应,我想肯定要用到"泛型"(这不是废话吗?都说了要转换成Lis ...

  6. 将字符串转换成ListT

    将字符串按指定的分隔符转换成List<T>类型,但目前只支持int和string,如果哪位有更好的方法希望不吝赐教,欢迎大家拍砖.直接上代码: /// <summary> // ...

  7. C# DataTable转换成DataRow

    linq中的cast<T>()及OfType<T>() DataTable dt=...........//获取从数据库中取出的数据(假设只有一条记录)//Cast<T& ...

  8. WebApi 将 DataRow、DataTable转换成JObject返回

    /// <summary> /// 扩展:将object强制转化为int /// </summary> /// <param name="o"> ...

  9. DataTable转换成List

    转自:http://blog.csdn.net/dinglang_2009/article/details/6951138 using System; using System.Collections ...

最新文章

  1. css3伪元素选择器before 和 after 的使用
  2. 姓名、病史、医疗影像通通泄露,500万人数据库没密码随便看,AI医疗暴露危机...
  3. 我学习Python的三个神级网站
  4. laravel 数据库获取值的常用方法
  5. jQuery编程规范与最佳实践(附带一些个人的笔记)
  6. matlab2c使用c++实现matlab函数系列教程-abs函数
  7. ftp连接工具,8款免费又好用的ftp连接工具
  8. python数学符号读法大全_数学符号及读法大全
  9. Linux版主机卫士安装使用
  10. 最难忘的一节计算机课,最难忘的一节课作文(3篇)
  11. 全国大学生英语竞赛——题型介绍
  12. python运维都做些什么_系统运维是做什么的(python在实际工作中的应用)
  13. mysql中如何去除重复数据_MySQL如何去除重复数据?
  14. 2066服务器芯片组,华硕发布三款LGA2066对应工作站主机板
  15. java类的软考有哪些科目_软考各级别各科目考试分析
  16. 索尼CCD和CMOS图像传感器
  17. 怎样重启Gunicorn
  18. seo模拟点击软件_SEO快排
  19. 天枰座定时任务处理框架
  20. 转行学java好学吗?完全没有经验怎么办?

热门文章

  1. sql server 数据库备份方案
  2. 基于向量空间的知识图谱查询及结果解释
  3. Spring多数据源配置和使用
  4. 【javascript】深入理解对象
  5. 配置开发ExtJS环境
  6. TCP/IP网络的一些问题(路由/协议/linux的实现)
  7. Linux 常用命令操作
  8. FILE文件流的中fopen、fread、fseek、fclose的使用
  9. javascript内置顶层函数
  10. 如何在ASP.NET页面中使用异步任务(PageAsyncTask)