/// <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. 转载-Archunit的使用

    Archunit的使用 注:开发的编辑器: Intellij Idea,JDK版本是JDK8     Archunit是什么,官网的英文介绍很好,建议阅读原文,"ArchUnit is a  ...

  2. C#_.NetFramework_Web项目_EXCEL数据导出

    [推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需引用NPOI的NuGet包: A-2:EXCEL数据导出--Web项目--C#代码导出 ...

  3. python爬虫执行js代码-execjs

    一.安装模块 pip install PyExecJS execjs会自动使用当前电脑上的运行时环境(建议用nodejs,与Phantomjs) 二.简单的使用 import execjs js_ob ...

  4. 漏洞扫描与分析-Nessus-8.7.2最新版-安装-部署-使用

    漏洞扫描与分析-Nessus 2019/10/10 Chenxin 简介 官网 https://zh-cn.tenable.com/ 产品 https://zh-cn.tenable.com/prod ...

  5. Linux下使用 github+hexo 搭建个人博客03-hexo配置优化

    上两张文章,我们说了 hexo 部署.主题的切换.博文的创建.MarkDown 简单使用和 hexo 部署到 GitHub Pages. 也说了我们会使用 next 主题做为我们后期博客的使用和维护. ...

  6. 激活windows操作系统的命令行指令

    1.开始菜单中搜索命令提示符,右键管理员运行 2.为了避免激活的失败,首先卸载已经过期的密钥 输入以下命令:slmgr.vbs /upk 回车确认之后会弹出提示“已成功卸载了产品密钥” 3.下一步是将 ...

  7. ThinkPHP数据库驱动之mysql事物回滚

    1.开启事务方法 startTrans()2.事务提交方法 commit()3.事务回滚方法 rollback() 用法例子: $order = M(‘order’); $allAdded = tru ...

  8. Python迭代器的用法,next()方法的调用

    迭代器的用法: 首先说两个概念,一个是可迭代的对象,一个是迭代器对象,两个不同 可迭代的(Iterable):就是可以for循环取数据的,比如字典.列表.元组.字符串等,不可使用next()方法. 迭 ...

  9. CSRF说明

    CSRF: 跨站请求伪造 与XSS区别: XSS:利用用户对站点的信任 CSRF:利用站点对已经经过身份认证客户端的信任 CSRF原理(在用户非自愿.不知情的情况下提交请求): 当client已经与s ...

  10. Java实战|Tomcat+Servlet+Sql开发简单网站,从配置环境开始

    课题描述: Java实验五 Servlet (继续使用实验四中创建的students数据库和其中的scores表) 使用Tomcat作为Web服务器和Servlet容器,使用SQL Server/My ...