反射DataTable转实体类
Posted chenyanbin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射DataTable转实体类相关的知识,希望对你有一定的参考价值。
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Reflection; 5 6 namespace Dll 7 8 public static class ToEntity 9 10 /// <summary> 11 /// 将DataTable转换成实体类 12 /// </summary> 13 /// <typeparam name="T">实体类</typeparam> 14 /// <param name="dt">DataTable</param> 15 /// <returns></returns> 16 public static List<T> DtConvertToModel<T>(DataTable dt) where T:new() 17 18 List<T> ts = new List<T>(); 19 foreach (DataRow dr in dt.Rows) 20 21 T t = new T(); 22 foreach (PropertyInfo pi in t.GetType().GetProperties()) 23 24 if (dt.Columns.Contains(pi.Name)) 25 26 if (!pi.CanWrite) continue; 27 var value = dr[pi.Name]; 28 if (value!= DBNull.Value) 29 30 switch (pi.PropertyType.FullName) 31 32 case "System.Decimal": 33 pi.SetValue(t, decimal.Parse(value.ToString()), null); 34 break; 35 case "System.String": 36 pi.SetValue(t, value.ToString(), null); 37 break; 38 case "System.Int32": 39 pi.SetValue(t, int.Parse(value.ToString()), null); 40 break; 41 default: 42 pi.SetValue(t, value, null); 43 break; 44 45 46 47 48 ts.Add(t); 49 50 return ts; 51 52 53
以上是关于反射DataTable转实体类的主要内容,如果未能解决你的问题,请参考以下文章