list转dataTable

Posted lanyu001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了list转dataTable相关的知识,希望对你有一定的参考价值。

在我们工作中有时候需要类型转换的,在此提供一个list转datatable的方法:

        public static DataTable ListToDataTable<T>(List<T> list)
        {
            Type tp = typeof(T);
            PropertyInfo[] proInfos = tp.GetProperties();
            DataTable dt = new DataTable();
            foreach (var item in proInfos)
            {
                //解决DataSet不支持System.Nullable<>问题
                Type colType = item.PropertyType;
                if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition() == typeof(Nullable<>)))
                {
                    colType = colType.GetGenericArguments()[0];
                }
                //添加列明及对应类型  
                dt.Columns.Add(item.Name, colType);
            }
            foreach (var item in list)
            {
                DataRow dr = dt.NewRow();
                foreach (var proInfo in proInfos)
                {
                    object obj = proInfo.GetValue(item);
                    if (obj == null)
                    {
                        continue;
                    }
                    if (proInfo.PropertyType == typeof(DateTime) && Convert.ToDateTime(obj) < Convert.ToDateTime("1753-01-01"))
                    {
                        continue;
                    }
                    dr[proInfo.Name] = obj;
                }
                dt.Rows.Add(dr);
            }
            return dt;
        }

  

 码出人生,永无止境!

以上是关于list转dataTable的主要内容,如果未能解决你的问题,请参考以下文章

C#中list转table以及table转list

DataTable转List,转对象

list转dataTable

C#DataTable(转List /JSON/字典 互转)

c#list与datatable 用哪个

C# DataTable转List