DataTable转换泛型集合 实体类
2013-08-16 17:56
218 查看
/// <summary> /// 单表查询结果转换成泛型集合 --实体类的字段名 需要与DataTable的列名一致 /// </summary> /// <typeparam name="T">泛型集合类型</typeparam> /// <param name="dt">查询结果DataTable</param> /// <returns>以实体类为元素的泛型集合</returns> public static IList<T> convertToList<T>(DataTable dt) where T : new() { // 定义集合 List<T> ts = new List<T>(); // 获得此模型的类型 Type type = typeof(T); //定义一个临时变量 string tempName = string.Empty; //遍历DataTable中所有的数据行 foreach (DataRow dr in dt.Rows) { T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); //遍历该对象的所有属性 foreach (PropertyInfo pi in propertys) { tempName = pi.Name;//将属性名称赋值给临时变量 //检查DataTable是否包含此列(列名==对象的属性名) if (dt.Columns.Contains(tempName)) { // 判断此属性是否有Setter if (!pi.CanWrite) continue;//该属性不可写,直接跳出 //取值 object value = dr[tempName]; //如果非空,则赋给对象的属性 if (value != DBNull.Value) pi.SetValue(t, value, null); } } //对象添加到泛型集合中 ts.Add(t); } return ts; }
相关文章推荐
- DataTable转换list泛型集合(反射)
- 《从LRS项目重构来看“数据类型”——(第一话)DataTable转换泛型集合出现的类型冲突》
- DataTable 转换 泛型集合
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- 泛型集合、datatable常用数据类型转换Json帮助类
- List转DataTable(反射) ; 将泛型集合类转换成DataTable ; 将集合类转换成DataTable
- [工具类]泛型集合转换为DataTable
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- 将一个DataTable转换成一个List<T>的泛型集合
- 将一个DataTable转换成一个List<T>的泛型集合
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- DataSet、DataTable转换List(泛型集合与DataSet互相转换 )
- 关于DataTable与IList和List泛型集合的相互转换在网上总结
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)
- 通过反射,将datatable转换为List集合(反射读取实体类的属性,并赋值),通过接口来实现MySql和MsSql数据的切换(二层反射),静态构造函数,抽象类和接口的区别
- 将泛型集合类(List<T>)转换成DataTable,返回的DataTable所有列的数据类型为string型,且列顺序与字符串提供的字段顺序一致
- DataTable填充实体类返回泛型集合
- 三层架构中使用实体类填充泛型集合代替DataTable解决方案(ASP.NET+C#)