zoukankan      html  css  js  c++  java
  • DataTable到范型转换

    /// <summary>
    /// 适合于实体类和DataTable对应的情况
    /// </summary>

    public class ConvertExtend
    {
        //将泛型类转换成DataTable
        public static DataTable ToDataTable<T>(List<T> entitys)
        {
            DataTable dtResult = new DataTable();
            if (entitys == null || entitys.Count < 1)
            {
                throw new Exception("需转换的集合为空");
            }
            Type entityType = entitys[0].GetType();
            List<PropertyInfo> propertyInfoList = entityType.GetProperties().ToList<PropertyInfo>();
            foreach (PropertyInfo item in propertyInfoList)
            {
                dtResult.Columns.Add(new DataColumn(item.Name, item.PropertyType));
            }
            foreach (T entity in entitys)
            {
                DataRow dr = dtResult.NewRow();
                foreach (PropertyInfo item in propertyInfoList)
                {
                    dr[item.Name] = item.GetValue(entity, null);
                }
                dtResult.Rows.Add(dr);
            }
            return dtResult;
        }
        //将泛型类转换成DataTable
        public static IList<T> ToList<T>(DataTable dt)
        {
            List<T> list = new List<T>();
            //T model = default(T);
            for (int iRow = 0; iRow < dt.Rows.Count; iRow++)
            {
                DataRow dr = dt.Rows[iRow];
                T t = (T)System.Activator.CreateInstance(typeof(T));
                List<PropertyInfo> listPropertyInfo = t.GetType().GetProperties().ToList<PropertyInfo>();
                foreach (PropertyInfo item in listPropertyInfo)
                {
                    if (dr[item.Name] != DBNull.Value)
                    {
                        item.SetValue(t, dr[item.Name], null);
                    }
                    else
                    {
                        item.SetValue(t, (string)null, null);
                    }
                }
                list.Add(t);
            }
            return list;
        }

    }

  • 相关阅读:
    linux_ext4恢复超级块.txt
    bayaim_Centos7.6_mysql源码5.7-多my.cnf_20190424.txt
    bayaim_Centos7.6_mysql源码5.7-multi_20190424.txt
    zhy2_rehat6_mysql04
    zhy2_rehat6_mysql03
    Neo4j安装,入门到深入了解完整教程
    程序员千万不要裸辞,对你没有任何好处
    减薪是变相的裁员所以我还是走吧
    python正则表达式匹配中文日期时间
    python用正则表达式匹配字符串里的日期
  • 原文地址:https://www.cnblogs.com/single/p/1533367.html
Copyright © 2011-2022 走看看