• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#DataTable转List

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ORM:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Linq;
 5 using System.Reflection;
 6 using System.Web;
 7 
 8 namespace WebApplication1.date
 9 {
10     public class ORM
11     {
12         static public List<T> Tolist<T>(DataTable dt) where T : class, new()
13         {
14             Type t = typeof(T);
15             PropertyInfo[] PropertyInfo = t.GetProperties();
16             List<T> list = new List<T>();
17 
18             string typeName = string.Empty;
19             foreach (DataRow item in dt.Rows)
20             {
21                 T obj = new T();
22                 foreach (PropertyInfo s in PropertyInfo)
23                 {
24                     typeName = s.Name;
25                     if (dt.Columns.Contains(typeName))
26                     {
27                         if (!s.CanWrite) continue;
28 
29                         object value = item[typeName];
30                         if (value == DBNull.Value) continue;
31 
32                         if (s.PropertyType == typeof(string))
33                         {
34                             s.SetValue(obj, value.ToString(), null);
35                         }
36                         else
37                         {
38                             s.SetValue(obj, value, null);
39                         }
40                     }
41                 }
42                 list.Add(obj);
43             }
44             return list;
45         }
46 
47     }
48 }

创建DataTable:

 1 DataTable tblDatas = new DataTable("User");
 2             DataColumn dc = null;
 3             dc = tblDatas.Columns.Add("Id", Type.GetType("System.Int32"));
 4             dc.AutoIncrement = true;//自动增加
 5             dc.AutoIncrementSeed = 1;//起始为1
 6             dc.AutoIncrementStep = 1;//步长为1
 7             dc.AllowDBNull = false;//
 8 
 9             dc = tblDatas.Columns.Add("Name", Type.GetType("System.String"));
10             dc = tblDatas.Columns.Add("Pwd", Type.GetType("System.String"));
11 
12             DataRow newRow;
13             newRow = tblDatas.NewRow();
14             newRow["Name"] = "张三";
15             newRow["Pwd"] = "123";
16             tblDatas.Rows.Add(newRow);
17 
18             newRow = tblDatas.NewRow();
19             newRow["Name"] = "李四";
20             newRow["Pwd"] = "123456";
21             tblDatas.Rows.Add(newRow);
22             //调用ORM TOlist 泛型
23             var i = ORM.Tolist<User>(tblDatas);
24             var a = JsonConvert.SerializeObject(i);
25             Console.WriteLine(a);
26             Console.ReadKey();

 

创建类 User

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 namespace ConsoleApp1
 7 {
 8     public class User
 9     {
10         public int Id { get; set; }
11         public string Name { get; set; }
12         public string Pwd { get; set; }
13     }
14 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#从需要登录的网站上抓取数据发布时间:2022-07-13
下一篇:
推荐VS2008插件CodeRushXpressforC#发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap