C# DataTable 转换成ListT
运用泛型和反射实现的转换,很给力。代码中掺杂详尽注释,稍微了解一下泛型和反射便可以了解转换的实质。可以直接复制粘贴进行调用哦。 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相关推荐
- DataTable转换成IList
本文转载自http://blog.csdn.net/chentaihan/article/details/6407284 作者:陈太汉 在用C#作开发的时候经常要把DataTable转换成IL ...
- C#将DataTable转换成list的方法
本文实例讲述了C#将DataTable转换成list及数据分页的方法.分享给大家供大家参考.具体如下: /// <summary> /// 酒店评论列表-分页 /// </summa ...
- badatatable转成json_C# DataTable 转换成JSON数据 三种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...
- 简单的反射 把datatable 转换成list对象
/// <summary>/// 把datatable 转换成list对象/// </summary>/// <typeparam name="T"& ...
- list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码
前几天在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List的泛型集合(已知T类型).第一反应,我想肯定要用到"泛型"(这不是废话吗?都说了要转换成Lis ...
- 将字符串转换成ListT
将字符串按指定的分隔符转换成List<T>类型,但目前只支持int和string,如果哪位有更好的方法希望不吝赐教,欢迎大家拍砖.直接上代码: /// <summary> // ...
- C# DataTable转换成DataRow
linq中的cast<T>()及OfType<T>() DataTable dt=...........//获取从数据库中取出的数据(假设只有一条记录)//Cast<T& ...
- WebApi 将 DataRow、DataTable转换成JObject返回
/// <summary> /// 扩展:将object强制转化为int /// </summary> /// <param name="o"> ...
- DataTable转换成List
转自:http://blog.csdn.net/dinglang_2009/article/details/6951138 using System; using System.Collections ...
最新文章
- css3伪元素选择器before 和 after 的使用
- 姓名、病史、医疗影像通通泄露,500万人数据库没密码随便看,AI医疗暴露危机...
- 我学习Python的三个神级网站
- laravel 数据库获取值的常用方法
- jQuery编程规范与最佳实践(附带一些个人的笔记)
- matlab2c使用c++实现matlab函数系列教程-abs函数
- ftp连接工具,8款免费又好用的ftp连接工具
- python数学符号读法大全_数学符号及读法大全
- Linux版主机卫士安装使用
- 最难忘的一节计算机课,最难忘的一节课作文(3篇)
- 全国大学生英语竞赛——题型介绍
- python运维都做些什么_系统运维是做什么的(python在实际工作中的应用)
- mysql中如何去除重复数据_MySQL如何去除重复数据?
- 2066服务器芯片组,华硕发布三款LGA2066对应工作站主机板
- java类的软考有哪些科目_软考各级别各科目考试分析
- 索尼CCD和CMOS图像传感器
- 怎样重启Gunicorn
- seo模拟点击软件_SEO快排
- 天枰座定时任务处理框架
- 转行学java好学吗?完全没有经验怎么办?