DataTable转换实体类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OracleClient;
using System.Configuration;
using System.Text.RegularExpressions;
using DataAccess;
using System.Diagnostics;
using System.Reflection;
namespace Business
{
/// <summary>
/// 实体类转换
/// </summary>
/// <typeparam name="T"></typeparam>
public class CModelTableFill<T> where T : new()
{
/// <summary>
/// 填充多个实体类对象
/// </summary>
/// <param name="dt">数据集</param>
/// <returns>实体类</returns>
public List<T> FillModel(DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
return null;
}
T t = new T();
List<T> modelList = new List<T>();
PropertyInfo[] arrayInfo = t.GetType().GetProperties();
foreach (DataRow itemRow in dt.Rows)
{
T model = new T();
foreach (DataColumn itemColumn in dt.Columns)
{
foreach (PropertyInfo info in arrayInfo)
{
if (info.Name.ToUpper() == itemColumn.ColumnName)
{
if (itemRow[itemColumn.ColumnName] != DBNull.Value)
{
info.SetValue(model, itemRow[itemColumn.ColumnName].ToString(), null);
}
}
}
}
modelList.Add(model);
}
return modelList;
}
/// <summary>
/// 填充一个实体类对象
/// </summary>
/// <param name="dt">数据集</param>
/// <returns>实体类</returns>
public T FillModelRow(DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
return default(T);
}
T model = new T();
PropertyInfo[] arrayInfo = model.GetType().GetProperties();
for (int i = 0; i < dt.Columns.Count; i++)
{
foreach (PropertyInfo info in arrayInfo)
{
if (info.Name.ToUpper() == dt.Columns[i].ColumnName)
{
if (dt.Rows[0][i] != DBNull.Value)
{
info.SetValue(model, dt.Rows[0][i].ToString(), null);
break;
}
}
}
}
return model;
}
}
}
DataTable转换实体类的更多相关文章
- DataTable与实体类互相转换
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
- DataTable与实体类的转换
多年前写的DataTable与实体类的转换,已放github 阅读目录 介绍 起因 代码 UnitTest GitHub 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中 ...
- 【转】DataTable与实体类互相转换
原文地址:https://www.cnblogs.com/marblemm/p/7084797.html /// <summary> /// DataTable与实体类互相转换 /// & ...
- DataTable和实体类之间的转换
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...
- DataTable转实体类
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
- DataTable和实体类通过反射相互转换
using System.Runtime.Serialization; using System.Data; using System.Reflection; using System.Collect ...
- datatable与实体类之间相互转化的几种方法
#region DataTable转换成实体类 /// <summary> /// 填充对象列表:用DataSet的第一个表填充实体类 /// </summary> /// & ...
- .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类
在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要 ...
- C# DataTable 转 实体类
C# 中查询结果DataTable转实体类: 比如:List<RtmInterview> rtmList = GetDataById( id); public List<RtmInt ...
随机推荐
- JVM(Java虚拟机)优化大全和案例实战
堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...
- android NDK jni下的c文件 Unresolved inclusion
原因是在eclipse编辑环境中没有找到对应的include中的文件.解决方法是将包含该文件的include目录作为新的linked folder加入工程中.具体方法如下:1. 右击工程->Ne ...
- RBF network
1.radial basis function RBF表示某种距离,$\mu_m$为中心点,相当于将点$x$到中心点的某种距离作为特征转换 Output方法可以根据需求任意选取(比如使用SVM,log ...
- 利用rman进行异机还原(目录相同)
利用rman进行异机还原(目录相同) 源始库:192.168.201.2 目标库:192.168.201.3 --192.168.201.2 --rman [oracle@db01 ~]$ rman ...
- 【Spring MVC系列】--(4)返回JSON
[Spring MVC系列]--(4)返回JSON 摘要:本文主要介绍如何在控制器中将数据生成JSON格式并返回 1.导入包 (1)spring mvc 3.0不需要任何其他配置,添加一个jackso ...
- sql中int字段实现百分比
首先: 用col*1.00 把int字段隐式转换成decimal类型. 然后: 用 round(col,2)来截取前两个小数前的数据 最后: 用 CONVERT(FLOAT,decimalNum)来转 ...
- 解析word中的表格
由于word表格的特殊性,其本身中的数据本来就不够完善,不能够很好的知道其具体的合并.跨行的相关属性,表格的单位可能是PT或者是百分比,并且是共存的,为处理带来了一定的负担,本代码实现了一个将Word ...
- memcached在注册表的位置
HKEY_LOCAL_MACHINE-System-ControlSet001-services-Memcached Server
- oracle update语句的几点写法
update两表关联的写法包括字查询 1.update t2 set parentid=(select ownerid from t1 where t1.id=t2.id); 2. update tb ...
- UTL_FILE 的用法
UTL_FILE 的用法 UTL_FILE 是用来进行文件IO处理的专用包,使用这外包的注意事项如下: 1. 生成的文件好象只能放置在DATABASE所在的服务器路径中. 2. 生成的文件如何DO ...