Datatable转实体 实体转换辅助类
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Web; /// <summary>
/// DbHelper 的摘要说明
/// </summary>
public class DbHelper
{
public DbHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 实体转换辅助类
/// </summary>
public class ModelConvertHelper<T> where T : new()
{
public static List<T> ConvertDataTableToList(DataTable dt)
{
// 定义集合
List<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = ""; foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name; // 检查DataTable是否包含此列 if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue; object value = dr[tempName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
ts.Add(t);
}
return ts;
}
public static IList<T> ConvertDataTableToIList(DataTable dt)
{
// 定义集合
IList<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = ""; foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name; // 检查DataTable是否包含此列 if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
ts.Add(t);
}
return ts;
}
}
}
Datatable转实体 实体转换辅助类的更多相关文章
- DataTable转List<Model>通用类【实体转换辅助类】
		
/// <summary> /// DataTable转List<Model>通用类[实体转换辅助类] /// </summary> public class Mo ...
 - .NET 实体转换辅助类
		
/// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...
 - C# DataTable转换成实体列表 与 实体列表转换成DataTable
		
/// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...
 - (转)DATATABLE(DATASET)与实体类之间的互转.
		
转自:http://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html dataset和实体类 之间的转换 //dataset转实体类 代 ...
 - DataTable转换为Model实体对象
		
记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反 ...
 - C# 将html实体编码转换到正常字符 & #40;格式
		
获取到html实体编码字符后,通过正则获取其中的html实体编码,再统一强制转换到正常字符: 代码如下: string strformat = item.value7; //将html实体编码转换到正 ...
 - Entity Framework入门教程(10)---离线场景保存和删除实体/实体图集
		
离线场景保存和删除实体/实体图集 这一节的内容是在离线场景中保存实体和实体图集 在离线场景中,当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中 ...
 - WebForm获取GET或者POST参数到实体的转换,ADO.NET数据集自动转换实体
		
最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[] ...
 - C#把 DataTable转换为Model实体
		
public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List& ...
 
随机推荐
- Java读取并下载网络文件
			
CreateTime--2017年8月21日10:11:07 Author:Marydon import java.io.ByteArrayOutputStream; import java.io ...
 - 〖Linux〗Kubuntu KDE开机后总是提示“system program problem detected”的解决方法
			
自从从Ubuntu切换到了Kubuntu之后,就经常在开机的时候提示“system program problem detected”: 查看 /var/crash/ 发现都是一些无关痛痒的程序在关机 ...
 - 【Linux】Ubuntu13.10 设置静态ip地址
			
vim /etc/network/interfaces # interfaces() ) and ifdown() auto eth0 iface eth0 inet static address 2 ...
 - 分布式 并行软件平台 Dryad Hadoop HPCC
			
1.为了 能够方便记忆, 总结一下. 2. 并行软件平台,不是 一个. (1)这个特别熟悉的 以 hadoop 为平台的 生态系统 (2)还有以 微软的 并行软件平台 生态系统 (3) 还有Lexi ...
 - oracle安装后tnsnames.ora内容
			
# tnsnames.ora Network Configuration File: D:\Develop\oracle11g\product\11.2.0\dbhome_1\network\admi ...
 - HDUOJ-------单词数
			
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
 - IP首部格式[转载]
			
TCP 传输首部是 IP首部,所以把IP首部格式 拿过来研究下,看IP首部解码过程: 来源:51CTO博客,地址:http://lihuan.blog.51cto.com/4391550/7999 ...
 - MySQL 索引优化 Using where, Using filesort
			
用Explain分析SQL语句的时候,经常发现有的语句在Extra列会出现Using filesort,根据MySQL官方文档对他的描述: 引用 MySQL must do an extra pass ...
 - 使用 awstats 分析 Nginx 的访问日志(IBM)
			
前言 在我的上一篇文章<使用 Nginx 提升网站访问速度>中介绍了 Nginx 这个 HTTP 服务器以及如何通过它来加速网站的访问速度.在实际的网站运营中,我们经常需要了解到网站的访问 ...
 - nginx init 官方启动脚本
			
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # descrip ...