将DataTable转换为泛型集合

使用反射将DataTable转换为TargetType列表
本文介绍了一个方法,使用C#反射技术将DataTable转换为特定类型的列表。通过遍历DataTable的每一行和列,动态创建并填充对象。
 1         protected List<T> ConvertDataTableToTargetTypeList<T>(DataTable table)
2 {
3 List<T> list = new List<T>();
4 Type typeInfo = typeof(T);
5 //得到T内所有的公共属性
6 PropertyInfo[] propertys = typeInfo.GetProperties();
7 foreach (DataRow rowItem in table.Rows)
8 {
9 //通过反射动态创建对象
10 T objT = Activator.CreateInstance<T>();
11 //给objT的所有属性赋值
12 foreach (DataColumn columnItem in table.Columns)
13 {
14 foreach (PropertyInfo property in propertys)
15 {
16 if (columnItem.ColumnName.ToLower().Equals(property.Name.ToLower()))
17 {
18 //获取指定单元格的值
19 object value = rowItem[columnItem.ColumnName];
20 if (value != DBNull.Value)
21 {
22 property.SetValue(objT, value, null);
23 }
24 break;
25 }
26 }
27 }
28 list.Add(objT);
29 }
30 return list;
31 }




转载于:https://www.cnblogs.com/YangTaoCQ/archive/2011/12/14/2288118.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值