• DataTable转List<T>


    类:

     public class ModelConvertHelper<T> where T : new()
        {
            public static List<T> ConvertToModel(DataTable dt)
            {
                List<T> ts = new List<T>();//定义集合
                //Type type = typeof(T);//获得此模型的类型
                foreach (DataRow dr in dt.Rows)
                {
                    T t = new T();
                    PropertyInfo[] propertys = t.GetType().GetProperties();//获取此模型的公共属性
                    foreach (PropertyInfo pi in propertys)
                    {
                        if (dt.Columns.Contains(pi.Name))
                        {
                            if (!pi.CanRead)
                            {
                                continue;
                            }
                            object value = dr[pi.Name];
                            if (value != DBNull.Value)
                            {
                                pi.SetValue(t, value, null);
                            }
                        }
                    }
                    ts.Add(t);
                }
                return ts;
            }
        }

    调用示例:

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
    
                dt.Columns.Add(new System.Data.DataColumn("Code", typeof(string)));
                dt.Columns.Add(new System.Data.DataColumn("ChineseName", typeof(string)));
                dt.Columns.Add(new System.Data.DataColumn("UserApplicant", typeof(string)));
                dt.Columns.Add(new System.Data.DataColumn("Email", typeof(string)));
                dt.Columns.Add(new System.Data.DataColumn("CreateDate", typeof(string)));
    
                for (int i = 0; i < 100; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = "0801";
                    dr[1] = "赵孟蒙";
                    dr[2] = "mengmeng.zhao";
                    dr[3] = "xingkongmm@163.com";
                    dr[4] = DateTime.Now.ToString();
                    dt.Rows.Add(dr);
                }
    
                List<person> list = ModelConvertHelper<person>.ConvertToModel(dt);
            }
        }
    
        public class person
        {
            public string Code { get; set; }
            public string ChineseName { get; set; }
            public string UserApplicant { get; set; }
            public string Email { get; set; }
            public string CreateDate { get; set; }
        }
    }
    勤劳一日,便得一夜安眠;勤劳一生,便得幸福长眠。
  • 相关阅读:
    m-n的随机整数 包括m n
    获取url参数 hash类型
    js 数组转带空格字符串
    产生n-m的随机数组
    js 判断android、IOS
    判断是否微信浏览器
    文本左右对齐方式css
    H5微信支付流程
    H5微信授权登录流程
    H5页面 input禁止弹出键盘
  • 原文地址:https://www.cnblogs.com/zhaomengmeng/p/6607759.html
Copyright © 2020-2023  润新知