DataSet转化为实体集合类
2018-06-22 06:37:52来源:未知 阅读 ()
1 /// <summary> 2 /// DataSet转换为实体类 3 /// </summary> 4 /// <typeparam name="T">实体类</typeparam> 5 /// <param name="p_DataSet">DataSet</param> 6 /// <param name="p_TableIndex">待转换数据表索引</param> 7 /// <returns>实体类</returns> 8 public static T DataSetToEntity<T>(DataSet p_DataSet, int p_TableIndex) 9 { 10 if (p_DataSet == null || p_DataSet.Tables.Count < 0) 11 return default(T); 12 if (p_TableIndex > p_DataSet.Tables.Count - 1) 13 return default(T); 14 if (p_TableIndex < 0) 15 p_TableIndex = 0; 16 if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0) 17 return default(T); 18 19 DataRow p_Data = p_DataSet.Tables[p_TableIndex].Rows[0]; 20 // 返回值初始化 21 T _t = (T)Activator.CreateInstance(typeof(T)); 22 PropertyInfo[] propertys = _t.GetType().GetProperties(); 23 foreach (PropertyInfo pi in propertys) 24 { 25 if (p_DataSet.Tables[p_TableIndex].Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data[pi.Name.ToUpper()] != DBNull.Value) 26 { 27 pi.SetValue(_t, p_Data[pi.Name.ToUpper()], null); 28 } 29 else 30 { 31 pi.SetValue(_t, null, null); 32 } 33 } 34 return _t; 35 } 36 37 /// <summary> 38 /// DataSet转换为实体列表 39 /// </summary> 40 /// <typeparam name="T">实体类</typeparam> 41 /// <param name="p_DataSet">DataSet</param> 42 /// <param name="p_TableIndex">待转换数据表索引</param> 43 /// <returns>实体类列表</returns> 44 public static IList<T> DataSetToEntityList<T>(DataSet p_DataSet, int p_TableIndex) 45 { 46 if (p_DataSet == null || p_DataSet.Tables.Count < 0) 47 return default(IList<T>); 48 if (p_TableIndex > p_DataSet.Tables.Count - 1) 49 return default(IList<T>); 50 if (p_TableIndex < 0) 51 p_TableIndex = 0; 52 if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0) 53 return default(IList<T>); 54 55 DataTable p_Data = p_DataSet.Tables[p_TableIndex]; 56 // 返回值初始化 57 IList<T> result = new List<T>(); 58 for (int j = 0; j < p_Data.Rows.Count; j++) 59 { 60 T _t = (T)Activator.CreateInstance(typeof(T)); 61 PropertyInfo[] propertys = _t.GetType().GetProperties(); 62 foreach (PropertyInfo pi in propertys) 63 { 64 if (p_Data.Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data.Rows[j][pi.Name.ToUpper()] != DBNull.Value) 65 { 66 pi.SetValue(_t, p_Data.Rows[j][pi.Name.ToUpper()], null); 67 } 68 else 69 { 70 pi.SetValue(_t, null, null); 71 } 72 } 73 result.Add(_t); 74 } 75 return result; 76 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- DataSet与DataTable的区别示例介绍 2020-03-04
- U9创建BE组件 2019-07-24
- C#关于反序列化实例时,接收实体字段少于或大于原实体对象 2019-07-10
- datatable与实体类之间相互转化的几种方法 2019-05-08
- Dapper.Contrib拓展及数据库生成实体 2018-06-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash