博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataSet转换为泛型集合和DataRow 转成 模型类
阅读量:6965 次
发布时间:2019-06-27

本文共 2792 字,大约阅读时间需要 9 分钟。

public static class TransformToList    {        ///                  /// DataSet转换为泛型集合                 ///                  /// 
泛型类型
/// DataSet数据集 /// 待转换数据表索引,默认第0张表 ///
返回泛型集合
public static List
ToList
(this DataSet ds, int tableIndex = 0) { if (ds == null || ds.Tables.Count < 0) return null; if (tableIndex > ds.Tables.Count - 1) return null; if (tableIndex < 0) tableIndex = 0; DataTable dt = ds.Tables[tableIndex]; // 返回值初始化 List
result = new List
(); for (int j = 0; j < dt.Rows.Count; j++) { T _t = (T)Activator.CreateInstance(typeof(T)); PropertyInfo[] propertys = _t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { for (int i = 0; i < dt.Columns.Count; i++) { // 属性与字段名称一致的进行赋值 if (pi.Name.Equals(dt.Columns[i].ColumnName)) { // 数据库NULL值单独处理 if (dt.Rows[j][i] != DBNull.Value) pi.SetValue(_t, dt.Rows[j][i], null); else pi.SetValue(_t, null, null); break; } } } result.Add(_t); } return result; } ///
/// DataRow 转成 模型 /// ///
///
///
public static T ToModel
(this DataRow dr) where T : class, new() { T ob = new T(); if (dr != null) { Type vType = typeof(T); //创建一个属性的列表 PropertyInfo[] prlist = vType.GetProperties(); DataColumnCollection vDataCoulumns = dr.Table.Columns; try { foreach (PropertyInfo vProInfo in prlist) { if (vDataCoulumns.IndexOf(vProInfo.Name) >= 0 && dr[vProInfo.Name] != DBNull.Value) { vProInfo.SetValue(ob, dr[vProInfo.Name], null); } } } catch (Exception ex) { } } return ob; } }

 

转载于:https://www.cnblogs.com/Kendy/p/10271662.html

你可能感兴趣的文章
MySQL索引分析
查看>>
20170829
查看>>
android项目获得所有运行程序
查看>>
Volley框架学习
查看>>
css中常用的标签
查看>>
android studio无线真机调试------Android
查看>>
jsp指令与动作
查看>>
C++中关键字的理解--Static
查看>>
简述Core Location定位功能
查看>>
html搜索,文中的关键字变色
查看>>
Python标准库_ sys,random,time
查看>>
[Android开发Tips]Bean的定义
查看>>
less
查看>>
PrestaShop 网站后台配置(三)
查看>>
【Win8启动后自动进入传统桌面设置】
查看>>
GP通过外部表装载数据时遇到ERROR:extra data after last expected column解决方法
查看>>
hdu2639,第K优决策
查看>>
hdu1166 敌兵布阵
查看>>
gcd(辗转相除法)
查看>>
多个Silverlight应用程序如何共享一个DomainService
查看>>