DataSet结果转模型类
引入命名空间:
using System.Data;
using System.Reflection;
类封装代码:
public class ModelHelper
{
public T To<T>(DataRow dr) where T : new()
{
T model= new T(); //T model = default(T); //model = Activator.CreateInstance<T>();
Type t = model.GetType(); //获取模型类的类型 //循环遍历模型类的每一个属性,并为其赋值
foreach (PropertyInfo pi in t.GetProperties())
{
if (dr.Table.Columns.Contains(pi.Name)) //如果DataTable的列中包含当前的属性名
{
if (!pi.CanWrite) continue;
object value = dr[pi.Name];
if (value != DBNull.Value)
{
pi.SetValue(model, value, null);
}
else
{
pi.SetValue(model, null, null);
}
} } return model;
} public IList<T> ToList<T>(DataTable dt) where T : new()
{
List<T> list = new List<T>();
foreach (DataRow dr in dt.Rows)
{
list.Add(To<T>(dr));
}
return list;
} //另一种写法
//public T To<T>(DataTable dt) where T : new()
//{
// T model = default(T);
// model = Activator.CreateInstance<T>(); // PropertyInfo[] propertys = model.GetType().GetProperties(); //获取模型类的类型 // //循环遍历模型类的每一个属性,并为其赋值
// foreach (PropertyInfo pi in propertys)
// {
// if (dt.Columns.Contains(pi.Name)) //如果DataTable的列中包含当前的属性名
// {
// if (!pi.CanWrite) continue;
// object value = dt.Rows[0][pi.Name];
// if (value != DBNull.Value)
// {
// pi.SetValue(model, value, null);
// }
// else
// {
// pi.SetValue(model, null, null);
// }
// }
// } // return model;
//}
}
DataSet结果转模型类的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Django模型类Meta元数据详解
转自:https://my.oschina.net/liuyuantao/blog/751337 简介 使用内部的class Meta 定义模型的元数据,例如: from django.db impo ...
- Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1
这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...
- phpcms v9二次开发之模型类的应用(1)
在<phpcms二次开发之模型类model.class.php>中讲到了模型类的建立方法,接下来我讲一下模型类的应用. 前段时间我基于phpcms v9开发了一个足球网.足球网是 ...
- phpcms v9二次开发之模型类的应用(2)
二.模型操作方法select()--查询语句 //查询级别管理列表信息 public function levellists() { $lelists = $this->l ...
- Django 入门案例开发(下)——创建项目应用及模型类
前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟着我的步骤进行开发,如果有不理解的地方可以给我留言. 今天的任务是创建好项目和用户(users)应用及让它 ...
- 分析业务模型-类图(Class Diagram)
分析业务模型-类图(Class Diagram) 分析业务模型-类图(Class Diagram)(上) 摘要:类图(Class Diagram)可能是用得最多的一种UML图.类图的基本语法并 ...
- TP5模型类关键字赋值
在写项目过程中 开始的代码如下 $ms = new MStore(); $ms->userid = $userid; $ms->address = $mc->address; $ms ...
- django的模型类管理器-----------数据库操作的封装
模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除 ...
随机推荐
- maven clean或package报错
[ERROR] Failed to execute goal on project jeesns-service: Could not resolve dependencies for project ...
- druid数据源连接oracle10g报错:not support oracle driver 1.0
jdbc驱动与数据库版本不一致,去数据库服务器的安装目录(cd $ORACLE_HOME)找jdbc->lib->ojdbcX.jar 替换到你项目中即可. oracle目录lib下jar ...
- linux 扩展文件系统
1. 创建新分区 [root@localhost ~]# fdisk -l Disk /dev/sda: bytes, sectors Units = sectors of * = bytes Sec ...
- MyBatis 处理sql中的 大于,小于,大于等于,小于等于
Mybatis中的sql语句中的 “<” 和 “>” 号要用转义字符 “<” 和 ”>“ ,否则会报错! 如查找年龄大于等于指定年龄的用户信息: SELEC ...
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 166: illegal multibyte sequence
# -*- coding: utf-8 -*-# encoding = utf-8import unittestimport random class TestSequenceFunctions(un ...
- DotNetCore 部署到IIS 上
将 DotNetCore MVC 项目成功部署到 IIS 上,记录下配置要点: 1.在 ASP.NET Core 应用中使用 Kestrel Microsoft.AspNetCore.App 元包中包 ...
- C++隐藏任务栏图标
在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法. 第一种方法是设置窗口WS_EX_TOOLWINDOW扩展样式,通过在OnInitDi ...
- json键和值转数组
var jb={"美的":49,"三星":35,"海信":25,"格力":16,"方太":14}; ...
- ES6 解构
{ "code": 200, "msg": "success", "data": { "total" ...
- bzoj 1283 序列 - 费用流
题目传送门 传送门 题目大意 给定一个长度为$n$的序列,要求选出一些数使得原序列中每$m$个连续的数中不超过$K$个被选走.问最大的可能的和. 感觉建图好妙啊.. 考虑把问题转化成选$m$次数,每次 ...