C# 中DataTable转成模型List

引入using System.Reflection; 命名空间

使用注意实体类的属性名必须和DataTable的列名一致

使用:

DBList<StorageReport> dblist = new DBList<StorageReport>(dt);

模型:

    public class StorageReport
{
public string pqty { get; set; }
public string dqty { get; set; }
public string sqty { get; set; }
}

代码:

    public class DBList<T>:List<T> where T:new()
{
public DBList(DataTable dt)
{
foreach (T value in getItemValue<T>(dt))
{
this.Add(value);
}
} private List<T> getItemValue<T>(DataTable dt) where T : new()
{
List<T> items = new List<T>();
T model = new T(); //取出所有属性字段
PropertyInfo[] propertys = model.GetType().GetProperties();
foreach (DataRow dr in dt.Rows)
{
T item = new T();
foreach (PropertyInfo pinfo in propertys)
{
string value = dt.Columns.Contains(pinfo.Name) ? dr[pinfo.Name].ToString() : "";
pinfo.SetValue(item, value, null);
}
items.Add(item);
}
return items;
}
}

C# 中DataTable转成模型List的更多相关文章

  1. C# 中 DataTable转换成IList

    在用C#作开发的时候经常要把DataTable转换成IList:操作DataTable比较麻烦,把DataTable转换成IList,以对象实体作为IList的元素,操作起来就非常方便. 注意:实体的 ...

  2. DbUtility-关于DataTable转成List的效率问题

    DbUtility中的方法ExecuteDataTableAsync()得到的是一个DataTable,而我们常见的情况下,我们需要的不是DataTable,而是List或IList,所以现在需要考虑 ...

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

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

  4. C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)

    最近在做WCF,因为是内部接口,很多地方直接用的弱类型返回(DataSet),这其实是一种非常不好的方式,最近将项目做了修改,将所有接口返回值都修改成强类型,这样可以减少很多与客户端开发人员的沟通,结 ...

  5. DataTable 转换成 Json的3种方法

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

  6. 将DataTable转换成CSV文件

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...

  7. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  8. C#:DataTable映射成Model

    这是数据库开发中经常遇到的问题,当然,这可以用现成的ORM框架来解决,但有些时候,如果DataSet/DataTable是第三方接口返回的,ORM就不方便了,还得自己处理. 反射自然必不可少的,另外考 ...

  9. C#中DataTable排序、检索、合并等操作实例

    转载引用至:http://www.jb51.net/article/49222.htm     一.排序1.获取DataTable的默认视图2.对视图设置排序表达式3.用排序后的视图导出的新DataT ...

随机推荐

  1. Note_Master-Detail Application(iOS template)_05_ YJYMasterViewController.m

    //  YJYMasterViewController.m #import "YJYMasterViewController.h" #import "YJYDetailV ...

  2. (spring-第8回【IoC基础篇】)BeanDefinition在IoC容器中的注册

    在spring中,所有的bean都是由BeanFactory进行管理的.下面是BeanFactory的类体系结构: 我们清楚的看到,DefaultListableBeanFactory继承了BeanF ...

  3. 有意义的命名 Meaningful names

    名副其实 use intention-revealing names 变量.函数或类的名称应该已经答复了所有的大问题.它该告诉你,他为什么会存在,他做什么事,应该怎么用.我们应该选择都是致命了计量对象 ...

  4. ajax 外部变量

    1.一般的js代码可以放在任何位置.但是用jquery写的代码需要先引入jquery文件,再写代码. 2.ajax函数中内部的变量不能传到外部.如果改变外部变量,需要async:false,代码如下: ...

  5. IDataReader转换成list通用方法

    public static IList<T> ReaderToList<T>(this IDataReader dr) { //DateTime dt = DateTime.N ...

  6. Windows Phone,向localdatabase中插入时间数据出现不能转换的错误

    在开发一个小程序时,使用到了DateTime类型的 DBType, 当向数据库中插入一条信息时,报错说是DateTime类型不能转换. 后来发现是系统给我的DateTime类型的列赋予了个初值,而这个 ...

  7. C/C++学习之路

    在嵌入式的路上,仅仅会一种C语言是远远不够的,所以便在学习stm32的同时,开始学习C++,为以后做准备.由于学习之初,为了能激发自己的兴趣,便模仿别人写了一个截屏小软件,当然可能是世上最垃圾的截图软 ...

  8. Java学习第二天

    一.两个常用工具 1.随机生产一个[0,1)之间的数 Math.random() 举例: double box =Math.random(); //产生随机小数 [0,1) System.out.pr ...

  9. 一步一步实现iOS应用PUSH功能

    1. push原理 iOS push 工作机制可以用下图简要概括 Provider:应用自己的服务器: APNS:Apple Push Notification Service的简称,苹果的PUSH服 ...

  10. AttributeError: 'dict_values' object has no attribute 'translate'

    /***************************************************************************************** * Attribu ...