利用反射把DataTable自动赋值到Model实体(自动识别数据类型)
2014-07-06 10:00
387 查看
转:/article/5620570.html
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Reflection;
namespace System.Data
{
public static class DataTableHelper
{
#region 利用反射把DataTable的数据写到单个实体类
public static T ToSingleEntity<T>(this System.Data.DataTable dtSource)
{
if (dtSource == null)
{
return default(T);
}
if (dtSource.Rows.Count != 0)
{
Type type = typeof(T);
Object entity = Activator.CreateInstance(type); //创建实例
foreach (PropertyInfo entityCols in type.GetProperties())
{
if (!string.IsNullOrEmpty(dtSource.Rows[0][entityCols.Name].ToString()))
{
entityCols.SetValue(entity, Convert.ChangeType(dtSource.Rows[0][entityCols.Name], entityCols.PropertyType), null);
}
}
return (T)entity;
}
return default(T);
}
#endregion
#region 利用反射把DataTable的数据写到集合实体类里
public static List<T> ToListEntity<T>(this System.Data.DataTable dtSource)
{
if (dtSource == null)
{
return null;
}
List<T> list = new List<T>();
Type type = typeof(T);
foreach (DataRow dataRow in dtSource.Rows)
{
Object entity = Activator.CreateInstance(type); //创建实例
foreach (PropertyInfo entityCols in type.GetProperties())
{
if (!string.IsNullOrEmpty(dataRow[entityCols.Name].ToString()))
{
entityCols.SetValue(entity, Convert.ChangeType(dataRow[entityCols.Name], entityCols.PropertyType), null);
}
}
list.Add((T)entity);
}
return list;
}
#endregion
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Reflection;
namespace System.Data
{
public static class DataTableHelper
{
#region 利用反射把DataTable的数据写到单个实体类
public static T ToSingleEntity<T>(this System.Data.DataTable dtSource)
{
if (dtSource == null)
{
return default(T);
}
if (dtSource.Rows.Count != 0)
{
Type type = typeof(T);
Object entity = Activator.CreateInstance(type); //创建实例
foreach (PropertyInfo entityCols in type.GetProperties())
{
if (!string.IsNullOrEmpty(dtSource.Rows[0][entityCols.Name].ToString()))
{
entityCols.SetValue(entity, Convert.ChangeType(dtSource.Rows[0][entityCols.Name], entityCols.PropertyType), null);
}
}
return (T)entity;
}
return default(T);
}
#endregion
#region 利用反射把DataTable的数据写到集合实体类里
public static List<T> ToListEntity<T>(this System.Data.DataTable dtSource)
{
if (dtSource == null)
{
return null;
}
List<T> list = new List<T>();
Type type = typeof(T);
foreach (DataRow dataRow in dtSource.Rows)
{
Object entity = Activator.CreateInstance(type); //创建实例
foreach (PropertyInfo entityCols in type.GetProperties())
{
if (!string.IsNullOrEmpty(dataRow[entityCols.Name].ToString()))
{
entityCols.SetValue(entity, Convert.ChangeType(dataRow[entityCols.Name], entityCols.PropertyType), null);
}
}
list.Add((T)entity);
}
return list;
}
#endregion
}
}
相关文章推荐
- 利用反射把DataTable自动赋值到Model实体(自动识别数据类型)
- 利用反射把DataTable自动赋值到Model实体(自动识别数据类型)
- 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法
- 【转】利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值(二)
- 利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值
- 利用反射+特性实现简单的实体映射数据库操作类(还未做自动生成SQL语句部分)
- VA利用反射进行数据库的读取免数据类型转换
- 利用反射机制动态获取对象属性名称及数据类型
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 利用反射机制查询数据库内数据,数据库内数据库类型为类型时
- Java 利用反射构造私有数据类型
- [DotNet]利用反射自动将Web前台传递的数据初始化到对象中
- 2、利用反射技术得到泛型类型,实现对实体添删改查操作进行代码重用设计
- IOS 利用Model 反射属性 自动 创建表 插入 查询 修改
- C#自动给据sql中的带@的变量提取变量名称在从简单数据对象中取得生成SqlParameter数组进行数据插入(利用反射完成)
- 利用反射从DataTable填充数据到实体类的问题