zoukankan      html  css  js  c++  java
  • datatableToObject 方法

    #region DataTableToObjList
            /// <summary>
            /// DataTable数据转成Entity
            /// </summary>
            /// <typeparam name="T">Entity</typeparam>
            /// <param name="ds">数据集</param>
            /// <param name="tbName">表名</param>
            /// <returns></returns>
           public static List<T> DataTableToObjList<T>(DataTable dt) where T : new()
           {
               List<T> list = new List<T>();
               PropertyInfo[] propinfos = null;

               foreach (DataRow dr in dt.Rows)
               {

                   T entity = new T();
                   //初始化propertyinfo
                   if (propinfos == null)
                   {
                       Type objtype = entity.GetType();
                       propinfos = objtype.GetProperties();
                   }

                   //填充entity类的属性

                   foreach (PropertyInfo propinfo in propinfos)
                   {
                       foreach (DataColumn dc in dt.Columns)
                       {
                           if (dc.ColumnName.ToUpper().Equals(propinfo.Name.ToUpper()))
                           {

                               string v = null;
                               v = dr[dc.ColumnName].ToString();
                               if (!String.IsNullOrEmpty(v))
                               {
                                   if (propinfo.PropertyType.Equals(typeof(DateTime?)))
                                   {
                                       propinfo.SetValue(entity, (System.Nullable<DateTime>)DateTime.Parse(v), null);
                                   }
                                   else if (propinfo.PropertyType.Equals(typeof(System.Boolean?)))
                                   {
                                       propinfo.SetValue(entity, System.Boolean.Parse(v), null);
                                   }
                                   else if (propinfo.PropertyType.Equals(typeof(int?)))
                                   {
                                       propinfo.SetValue(entity, Convert.ToInt32(v), null);

                                   }
                                   else
                                   {
                                       propinfo.SetValue(entity, Convert.ChangeType(v, propinfo.PropertyType), null);

                                   }
                                   break;
                               }

                           }
                       }
                   }
                   list.Add(entity);
               }
               return list;
           }


            #endregion

    只要做判断都是可以的:)

    -------长沙程序员技术交流QQ群:428755207-------
  • 相关阅读:
    c.vim
    Ubuntu18.04重装指南
    [TJOI2017]城市 【树的直径+暴力+优化】
    [Bzoj3696]化合物【暴力+树形Dp】
    [JLOI2015]战争调度【暴力+树形Dp】
    [Bzoj3743][Coci2015] Kamp【换根Dp】
    [POI2017]Sabota【观察+树形Dp】
    [CQOI2009]叶子的染色【性质+树形Dp】
    COCI2014/2015 Contest#1 D MAFIJA【基环树最大独立点集】
    [牛客网] 推箱子【离散,线段树区间覆盖】
  • 原文地址:https://www.cnblogs.com/qq4004229/p/2105414.html
Copyright © 2011-2022 走看看