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转换实体类的更多相关文章

  1. DataTable与实体类互相转换

    /// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...

  2. DataTable与实体类的转换

    多年前写的DataTable与实体类的转换,已放github 阅读目录 介绍 起因 代码 UnitTest GitHub 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中 ...

  3. 【转】DataTable与实体类互相转换

    原文地址:https://www.cnblogs.com/marblemm/p/7084797.html /// <summary> /// DataTable与实体类互相转换 /// & ...

  4. DataTable和实体类之间的转换

    using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...

  5. DataTable转实体类

    /// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...

  6. DataTable和实体类通过反射相互转换

    using System.Runtime.Serialization; using System.Data; using System.Reflection; using System.Collect ...

  7. datatable与实体类之间相互转化的几种方法

    #region DataTable转换成实体类 /// <summary> /// 填充对象列表:用DataSet的第一个表填充实体类 /// </summary> /// & ...

  8. .net 根据匿名类生成实体类,根据datatable生成实体类,根据sql生成实体类

    在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要 ...

  9. C# DataTable 转 实体类

    C# 中查询结果DataTable转实体类: 比如:List<RtmInterview> rtmList = GetDataById( id); public List<RtmInt ...

随机推荐

  1. unity 距离某天还有多久

    距离某一天还有多久,简单的小例子. using UnityEngine; using System.Collections; using System; public class test : Mon ...

  2. Spring、Hello AOP

    AOP 概念:http://blog.csdn.net/moreevan/article/details/11977115 AOP 所使用到的jar 包: aspectjrt.jar common-a ...

  3. C#中关于DateTime的最大值和最小值

    System.DateTime的最小可能值:DateTime.MinValue.ToString()=0001-1-1 0:00:00 我们实际用的时候会指定一个默认值DateTime.Parse(& ...

  4. 高效搭建Spark全然分布式集群

    写在前面一: 本文具体总结Spark分布式集群的安装步骤,帮助想要学习Spark的技术爱好者高速搭建Spark的学习研究环境. 写在前面二: 使用软件说明 约定,Spark相关软件存放文件夹:/usr ...

  5. 【邻接表字符串Hash】【HDU1800】Flying to the Mars

    题意: 给你N个数字,带前导0,问出现最多的数字个数 思路: 读入,清楚前导0,Hash. 用邻接表字符串Hash有一下几点注意 string,不要memset,否则地址也没了,涉及到stl的东西,少 ...

  6. Java设计模式--------建造者模式(Builder模式)

    Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构 ...

  7. Phoegap(cordova)开发跨平台app之HelloWorld

    PhoneGap(cordova)的hellworld程序 1           安装JDK 配置环境变量: 2           安装android-sdk 配置环境变量: set Path=E ...

  8. 蓝桥杯D1

    整数因式分解的问题.了解了一下筛法计算素数的算法.之前都是直接跑的sqrt(n)... 上方的genPrime()即筛法.大致意思是开一个标识数组,通过循环,下标为合数的位置置为false. #inc ...

  9. javascript原型链继承

    一.关于javascript原型的基本概念: prototype属性:每个函数都一个prototype属性,这个属性指向函数的原型对象.原型对象主要用于共享实例中所包含的的属性和方法. constru ...

  10. 【转】java jawin api 中文 invoke方法

    org.jawin Class FuncPtr java.lang.Object org.jawin.FuncPtr ----------------------------------------- ...