月夜钓钱江鱼

醉后不知天在水,满船清梦压星河。
posts - 50,comments - 8,views - 29026

List对象集合转换成DataSet

复制代码
 1         public DataSet ConvertToDataSet<T>(IList<T> list)
 2         {
 3             if (list == null || list.Count <= 0)
 4             {
 5                 return null;
 6             }
 7             DataSet ds = new DataSet();
 8             DataTable dt = new DataTable(typeof(T).Name);
 9             DataColumn column;
10             DataRow row;
11             System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);
12             foreach (T t in list)
13             {
14                 if (t == null)
15                 {
16                     continue;
17                 }
18                 row = dt.NewRow();
19                 for (int i = 0, j = myPropertyInfo.Length; i < j; i++)
20                 {
21                     System.Reflection.PropertyInfo pi = myPropertyInfo[i];
22                     string name = pi.Name;
23 
24 
25 
26                     if (dt.Columns[name] == null)
27                     {
28                         var type = pi.PropertyType;
29                         if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
30                         {
31                             type = type.GetGenericArguments()[0];
32                         }
33                         column = new DataColumn(name, type);
34                         dt.Columns.Add(column);
35                     }
36                     row[name] = pi.GetValue(t, null);
37                 }
38                 dt.Rows.Add(row);
39             }
40             ds.Tables.Add(dt);
41             return ds;
42         }
复制代码

List对象集合转换成DataTable

复制代码
 1         public static DataTable ToDataTable<T>(IEnumerable<T> list)
 2         {
 3             PropertyInfo[] modelItemType = typeof(T).GetProperties();
 4             DataTable dataTable = new DataTable();
 5             dataTable.Columns.AddRange(modelItemType.Select(Columns => new DataColumn(Columns.Name, Columns.PropertyType)).ToArray());
 6             if (list.Count() > 0)
 7             {
 8                 for (int i = 0; i < list.Count(); i++)
 9                 {
10                     ArrayList tempList = new ArrayList();
11                     foreach (PropertyInfo pi in modelItemType)
12                     {
13                         object obj = pi.GetValue(list.ElementAt(i), null);
14                         tempList.Add(obj);
15                     }
16                     object[] dataRow = tempList.ToArray();
17                     dataTable.LoadDataRow(dataRow, true);
18                 }
19             }
20             return dataTable;
21         }
复制代码

 

posted on   湘灵  阅读(361)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示