/// <summary>
/// DataSet转换成model 自动赋值返回集合
/// </summary>
/// <typeparam name="T">模型类型</typeparam>
/// <param name="dataList">传入数据DataSet数据源</param>
/// <param name="obj">传入模型</param>
/// <returns></returns>
public List<T> DataSetBindList<T>(DataSet dataList,T obj) where T : new()
{
//创建一个泛型
List<T> lists = new List<T>();
//遍历DataSet数据源
foreach (DataRow item in dataList.Tables[0].Rows)
{
//将赋值的模型添加到集合里面
lists.Add(assignmentClass(new T(), item));
}
return lists;
}
/// <summary>
/// DataSet转换成model 自动赋值返回模型
/// </summary>
/// <typeparam name="T">模型类型</typeparam>
/// <param name="dataList">传入数据DataSet数据源</param>
/// <param name="obj">传入模型</param>
/// <returns></returns>
public T DataSetBindClass<T>(DataSet dataList, T obj) where T : new()
{
//创建一个模型
T model = new T();
//遍历数据源
foreach (DataRow item in dataList.Tables[0].Rows)
{
//将数据添加到模型里面
model = assignmentClass(new T(), item);
}
return model;
} /// <summary>
/// 抽象出赋值部分
/// </summary>
/// <typeparam name="T">模型类型</typeparam>
/// <param name="obj">传入模型</param>
/// <param name="item">传入数据DataRow数据源</param>
/// <returns></returns>
public T assignmentClass<T>(T obj, DataRow item) where T : new()
{
//先判断模型是不是等于空
if (obj==null)
{
//等于空创建一个
obj = new T();
}
//获取模型的类型
Type type = obj.GetType(); //得到类型
PropertyInfo[] properts = type.GetProperties(); //得到类型的所有属性,也就是表对应的实体模型的所有属性
//遍历PropertyInfo
foreach (PropertyInfo propertyInfo in properts)
{
//判断数据是否存在
int index = item.Table.Columns.IndexOf(propertyInfo.Name);
if (index != -1)
{
//判断数据源的数据不能为空
if (item[propertyInfo.Name] != null && item[propertyInfo.Name] != DBNull.Value)
{
//给obj赋值
propertyInfo.SetValue(obj, Convert.ChangeType(item[propertyInfo.Name], propertyInfo.PropertyType), null);
}
}
}
return obj;
}

.net 数据源DataSet 转换成模型的更多相关文章

  1. 把DataSet转换成JSON

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  2. DataSet转换成List<>

    方法一: //DataSet转换成List<ArticleInfo> public List<ArticleInfo> GetArticleList(DataSet ds) { ...

  3. iOS swift HandyJSON组合Alamofire发起网络请求并转换成模型

    在swift开发中,发起网络请求大部分开发者应该都是使用Alamofire发起的网络请求,至于请求完成后JSON解析这一块有很多解决方案,我们今天这里使用HandyJSON来解析请求返回的数据并转化成 ...

  4. 将DataSet转换成json

     /// <summary>        /// 把dataset数据转换成json的格式        /// </summary>        /// <para ...

  5. dataTable/dataSet转换成Json格式

    using System.Text;using System.Collections.Generic; 1)dataTable转Json(表格有名称:dt.TableName) public stat ...

  6. asp.net如何将DataSet转换成josn并输出

    public class JsonUtil { public string ToJson(DataSet dataSet) { string jsonString = "{"; f ...

  7. 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  8. DataTabel DataSet 对象 转换成json

    public class DataTableConvertJson    { #region dataTable转换成Json格式        /// <summary>         ...

  9. sparksql 用反射的方式将rdd转换成dataset/dataframe

    java public class ReflectionDemo { private static SparkConf conf = new SparkConf().setAppName(" ...

随机推荐

  1. go语言之map

    go语言的map就相当于python的dict 1.map的初始化 //创建map //k的类型是int,v的类型是string var test25_1 map[int]string fmt.Pri ...

  2. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU量产神器RT-Flash常见问题

    对于MCUBootUtility,RT-Flash工具,有任何使用上的问题,可以在本博客下留言,也可以扫码加入QQ交流群.

  3. JavaScript基础6

    计时器 setInterval()   按照指定周期来调用函数或计算表达式     以毫秒计算 语法    setInterval(code,millisec[,“lang”]) code 要调用的函 ...

  4. js分号问题

    总结一句话: 一行开头是括号(比如IIFE)或者方括号的时候加上分号就可以

  5. 百度地图API----搜索地址,获取该点的位置坐标并转换成WebMercator

    function doFind(){ LoadBaiduMapScript().then(BaiduMap).then(function () { //查询并获取坐标 var myGeo = new ...

  6. Python对 Excel 的常用操作

    几个常用的对象 Workbook:工作簿,一个包含多个Sheet的Excel文件 Worksheet:工作表,一个Workbook有多个Worksheet,如"Sheet1",&q ...

  7. linux kernel下输入输出console如何实现【转】

    转自:https://blog.csdn.net/skyflying2012/article/details/41078349 最近工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及u ...

  8. ARM-Linux中断系统【转】

    转自:https://www.cnblogs.com/arnoldlu/p/7406441.html 1.前言 了解Linux中断子系统,同时也需要了解ARM体系结构中断处理流程:在熟悉整个软硬件架构 ...

  9. Windows下Python虚拟环境

    python的虚拟环境在windows和linux下的配置是不一样的 主要解决开发应用程序的时候Python依赖包的版本问题 虚拟环境 virtualenv 安装 pip install virtua ...

  10. Druid-类图-属性表

    所属文章:池化技术(一)Druid是如何管理数据库连接的? 本篇为「工具人」文章,建议直接用「ctrl+f」进行查找属性.方法.类名,快速了解其含义和所属类. 主要流程里主要涉及到的类名称.类属性.类 ...