没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
using System;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Collections.ObjectModel;
namespace SLFramework.Framework
{
/// <summary>
/// 业务实体公共处理类
/// </summary>
public class EntityHelper<T> where T : new()
{
/// <summary>
/// 填充对象列表:用DataTable的表填充实体类
/// </summary>
/// <param name="dTable"></param>
/// <returns></returns>
public ObservableCollection<T> FillModel(DataTable dTable)
{
ObservableCollection<T> modelList = new ObservableCollection<T>();
if (dTable == null || dTable.Rows.Count == 0)
{//****不存在数据,返回null
return null;
}
else
{//****存在数据,进行强制转换
foreach (DataRow dr in dTable.Rows)
{
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Collections.ObjectModel;
namespace SLFramework.Framework
{
/// <summary>
/// 业务实体公共处理类
/// </summary>
public class EntityHelper<T> where T : new()
{
/// <summary>
/// 填充对象列表:用DataTable的表填充实体类
/// </summary>
/// <param name="dTable"></param>
/// <returns></returns>
public ObservableCollection<T> FillModel(DataTable dTable)
{
ObservableCollection<T> modelList = new ObservableCollection<T>();
if (dTable == null || dTable.Rows.Count == 0)
{//****不存在数据,返回null
return null;
}
else
{//****存在数据,进行强制转换
foreach (DataRow dr in dTable.Rows)
{
//T model = (T)Activator.CreateInstance(typeof(T));
//**实例化对象
T model = new T();
//**循环处理属性赋值
foreach (PropertyInfo propertyInfo in typeof(T).GetProperties())
{
if (dTable.Columns.Contains(propertyInfo.Name) && dr[propertyInfo.Name] != DBNull.Value)
{
string strColumnType = model.GetType().GetProperty(propertyInfo.Name).PropertyType.ToString();
switch (strColumnType.Trim().ToLower())
{
case "system.string"://****字符类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToString(dr[propertyInfo.Name]), null);
break;
case "system.double"://****double类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToDouble(dr[propertyInfo.Name]), null);
break;
case "system.decimal"://****decimal类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToDecimal(dr[propertyInfo.Name]), null);
break;
case "system.int"://****int类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, int.Parse(dr[propertyInfo.Name].ToString()), null);
break;
case "system.int32"://****int32类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToInt32(dr[propertyInfo.Name]), null);
//**实例化对象
T model = new T();
//**循环处理属性赋值
foreach (PropertyInfo propertyInfo in typeof(T).GetProperties())
{
if (dTable.Columns.Contains(propertyInfo.Name) && dr[propertyInfo.Name] != DBNull.Value)
{
string strColumnType = model.GetType().GetProperty(propertyInfo.Name).PropertyType.ToString();
switch (strColumnType.Trim().ToLower())
{
case "system.string"://****字符类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToString(dr[propertyInfo.Name]), null);
break;
case "system.double"://****double类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToDouble(dr[propertyInfo.Name]), null);
break;
case "system.decimal"://****decimal类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToDecimal(dr[propertyInfo.Name]), null);
break;
case "system.int"://****int类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, int.Parse(dr[propertyInfo.Name].ToString()), null);
break;
case "system.int32"://****int32类型
//如数据列存在,赋值
model.GetType().GetProperty(propertyInfo.Name).SetValue(model, Convert.ToInt32(dr[propertyInfo.Name]), null);
剩余6页未读,继续阅读
资源评论
yang9yun
- 粉丝: 13
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功