C# 中DataTable转成模型List

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;
        }
    }
时间: 2024-10-13 12:38:28

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

pythonnet模块的使用,把DataTable转换成DataFrame

1.模块的选择 python与c#交互目前有两种方式,一种是使用ironpython模块,另一种是使用pythonnet模块.笔者推荐使用pythonnet,因为ironpython不支持c#中的一些模块,如比较有名的pandas,numpy等. 2.使用pythonnet 使用pip下载pythonnet模块,在安装路径下会有clr.pyd.python.Runtime.dll 两个文件,pyd文件是在python脚本中使用,而python.Runtime则是在c#程序中所调用的动态库.(注意

字典转模型,模型转字典,将某个类中数组直接转换成模型

/** *  数组中需要转换的模型类 * *  @return 字典中的key是数组属性名,value是数组中存放模型的Class */ - (NSDictionary *)objectClassInArray; 使用实例: @property(nonatomic,strong)NSArray *pic_urls; - (NSDictionary *)objectClassInArray{ return @{@"pic_urls":[StatusPhoto class]}; } NSA

.NET中把DataTable转换成JSON的总结

最近在做公司的一个project,其中有一部分,要求浏览器端通过jquery ajax调用服务器端返回json格式的多条数据.网上搜索了一下,找到下面两个方法在.NET中生成json. 方法一:.NET Framework 3.0及更早的版本: public static string GetJSONString(DataTable Dt) { string[] StrDc = new string[Dt.Columns.Count]; string HeadStr = string.Empty

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

DbUtility中的方法ExecuteDataTableAsync()得到的是一个DataTable,而我们常见的情况下,我们需要的不是DataTable,而是List或IList,所以现在需要考虑把DataTable转成List或IList,目前暂时有三种方案: 方案1:用动软生成代码: 1 public static List<Roles> GetRoleses(DataTable dt) 2 { 3 List<Roles> list = new List<Roles&

如何将DataTable转换成List&lt;T&gt;呢?

昨日在工作中,遇到一个问题:需要将查询出来的DataTable数据源,转换成List<T>的泛型集合(已知T类型).第一反应,我想肯定要用到“泛型”(这不是废话吗?都说了要转换成List<T>泛型集合了),而且还要用到“反射”相关的.呵呵.很快,我就做出了一个小实例,测试通过.下面我将代码贴出来,分享给大家.代码都有详细的注释,读者朋友可以很清晰的看懂我的思路. 这是我写的一个通用转换类,完成此类操作 using System; using System.Collections.G

C#将DataTable转换成list的方法

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

将DataTable转换成CSV文件

DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记.CSV文件是个纯文本文件,每一行表示一张图片的许多属性. 在.net项目中运用C#将DataTable转化为CSV文件,现在提供一个较为通用的方法,具体代码如下:         /// <summary>         /// 将DataTable转换成CSV文件         /// &

IOS中将字典转成模型对象

作为IOS开发初级者今天学习了 如何将plist数据字典转成 数据对象数组中 .有点像C#中解析xml数据 的过程. apps.plist的xml数据是这样的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList

将list&lt;对象&gt;转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其他的方法,不过这个方法已经实现,就写一下了: 1.创建表. CREATE TABLE [dbo].[person]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Pwd] [nvarchar](50) NULL, [Age]