.net 数据源DataSet 转换成模型
/// <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 转换成模型的更多相关文章
- 把DataSet转换成JSON
/// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...
- DataSet转换成List<>
方法一: //DataSet转换成List<ArticleInfo> public List<ArticleInfo> GetArticleList(DataSet ds) { ...
- iOS swift HandyJSON组合Alamofire发起网络请求并转换成模型
在swift开发中,发起网络请求大部分开发者应该都是使用Alamofire发起的网络请求,至于请求完成后JSON解析这一块有很多解决方案,我们今天这里使用HandyJSON来解析请求返回的数据并转化成 ...
- 将DataSet转换成json
/// <summary> /// 把dataset数据转换成json的格式 /// </summary> /// <para ...
- dataTable/dataSet转换成Json格式
using System.Text;using System.Collections.Generic; 1)dataTable转Json(表格有名称:dt.TableName) public stat ...
- asp.net如何将DataSet转换成josn并输出
public class JsonUtil { public string ToJson(DataSet dataSet) { string jsonString = "{"; f ...
- 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)
public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...
- DataTabel DataSet 对象 转换成json
public class DataTableConvertJson { #region dataTable转换成Json格式 /// <summary> ...
- sparksql 用反射的方式将rdd转换成dataset/dataframe
java public class ReflectionDemo { private static SparkConf conf = new SparkConf().setAppName(" ...
随机推荐
- 2019年全国高校计算机能力挑战赛初赛C++语言解答
1; 题目一 16.电商促销某种商品时,希望通过打折鼓励消费者组团消费.已知,团队消费金额=该团的人数和*商品单价.打折规则如下:当组团消费者数量不满50人时,商品消费金额没有折扣:消费者数量大于等于 ...
- Java描述设计模式(05):原型模式
本文源码:GitHub·点这里 || GitEE·点这里 一.原型模式简介 1.基础概念 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出 ...
- 哈希算法原理【Java实现】(十)
前言 在入学时,学校为我们每位童鞋建立一个档案信息,当然每个档案信息都对应档案编号,还有比如在学校图书馆,图书馆为每本书都编了唯一的一个书籍号,那么问题来了,当我们需要通过档案号快速查到对应档案信息或 ...
- 关于HACLON程序导出C#程序,运行报错解决方法
摘要:一些环境配置异常的解决方法. 一,打不开相机: 1.打开系统高级设置--环境变量中是否有 HALCONROOT+安装目录名,若无进行添加. 2.关闭计算机其他连接相机的软件,例如海康的MVS,H ...
- python文件夹遍历,文件操作,获取文件修改创建时间
在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前 ...
- JS(TS)中数组常见的方法(未完待续)
push():向数组末尾添加一个或多个元素 unshift(): 向数组的开头添加一个或多个元素 pop(): 删除数组最后一个元素 shift(): 删除数组第一个元素 sort(): 给数组排序 ...
- [转]UIPATH机器人指南
本文转自:https://blog.csdn.net/weixin_33957036/article/details/80907372 介绍 机器人是UiPath的执行代理,可运行Studio中内置的 ...
- apache部分报错解决方法
AH00558: 进入apache文件夹下的conf文件夹,打开httpd.conf文件,用ctrl+F找到ServerName,如下图 在下面加上一句: ServerName domain_name ...
- tensorflow dataloader 相关内容
Tensorflow dataloader 相关调研:数据读取是训练的开始,是非常关键的一步:下面是调研时搜集到的一些相关链接: 十图详解tensorflow数据读取机制 https://zhuanl ...
- 快速破解Goland
两种激活方式永久激活:推荐优先使用,永久有效有效期激活:如果你实在激活不了又着急使用,这是备选激活方案,简单快捷 一.永久激活 1.下载新版破解补丁 点击链接 https://pan.baidu.co ...