数据集合转换成对象集合的反射代码

/// <summary>
/// 反射工具类
/// </summary>
/// <typeparam name="T"></typeparam>
public class AssemblyEntity<T> where T : class,new()
{
public static T SetEntity(object data)
{
T temp = new T();
Type dataType = data.GetType();
foreach (PropertyInfo p in temp.GetType().GetProperties())
{
try
{
p.SetValue(temp, data.GetType().GetProperty(p.Name).GetValue(data));
//temp.GetType().GetProperty(p.Name).SetValue(temp, dataType.GetProperty(p.Name).GetValue(data, null), null);
}
catch (Exception ex)
{
string s = ex.Message;
}

}

return temp;
}
public static T SetEntity(DataRow row)
{
T temp = new T();
foreach (PropertyInfo p in temp.GetType().GetProperties())
{
try
{
if (p.PropertyType != typeof(string))
{
if (p.PropertyType == typeof(Single))
{
p.SetValue(temp, Convert.ToSingle(row[p.Name]));
}
else if (p.PropertyType == typeof(DateTime))
{
p.SetValue(temp, Convert.ToDateTime(row[p.Name]));
}
else
{
p.SetValue(temp, row[p.Name]);
}
}
else
{
p.SetValue(temp, row[p.Name].ToString());
}
}
catch (Exception ex)
{
string s = ex.Message;
}
}
return temp;
}

public static List<T> SetEntitys(DataTable dt)
{
List<T> temp = new List<T>();
foreach (DataRow dr in dt.Rows)
{
temp.Add(SetEntity(dr));
}
return temp;
}
public static List<T> SetEntitys(DataRow[] rows)
{
List<T> temp = new List<T>();
foreach (DataRow dr in rows)
{
temp.Add(SetEntity(dr));
}
return temp;
}
}

时间: 2024-10-10 18:47:12

数据集合转换成对象集合的反射代码的相关文章

在一般处理程序中,把Form Post过来的表单集合转换成对象 ,仿 MVC post,反射原理

using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Reflection; using System.Web; using WebSite.Models; namespace testWebuploader.Scripts.Plugin.webuploader_v0._1._2 { /// <summary> /

How to cast List&lt;Object&gt; to List&lt;MyClass&gt; Object集合转换成实体集合

List<Object> list = getList(); return (List<Customer>) list; Compiler says: cannot cast List<Object> to List<Customer> 不能将Object集合强制转换成实体集合! you can always cast any object to any type by up-casting it to Object first. in your case:

使用Sql语句快速将数据表转换成实体类

开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType

单表查询结果转换成泛型集合

/// <summary> /// 单表查询结果转换成泛型集合 /// </summary> /// <typeparam name="T">泛型集合类型</typeparam> /// <param name="dt">查询结果DataTable</param> /// <returns>以实体类为元素的泛型集合</returns> public static ILis

c#将枚举转换成字典集合

枚举在软件开发中的用途 1. 枚举类型(enum type)是具有一组命名常量的独特的值类型. 2. 枚举的定义: public enum Sex { 男 = 0, 女 = 1 } 或者:如果只给男赋值,那么女=1 public enum Sex { 男 = 0, 女 } 3. 我们在实际开发中,对于数据库的设计会经常需要很多状态字段(比如性别.审核状态.分类状态等等等等),而这些状态字段的值又只有固定的几个,这个时候我们一般会需要数据字典来维护这些数据.而数据字典该以什么形式存在呢? 以我自己

list集合转换成datatable

/// 将list集合转换成datatable /// </summary> /// <param name="list"></param> /// <returns></returns> public static System.Data.DataTable ListToDataTable(IList list) { System.Data.DataTable result = new System.Data.DataTab

request请求转换成对象。

1)前端post数据过来,key和val键值对会有很多,这个时候往后端进行插值的时候,最好将这些键值对转换成对象进行处理. 使用common-beanutils 来将前端传递过来的map直接转换成对象. 依赖jar包: 前端代码的name属性要和后端bean对象属性一致! 1 <h1>测试POST</h1> 2 <form action="/bean" method="post"> 3 <input type="t

将传入结构体 pMtInfo 中包含的数据内容转换成 JSON 字符串返回

upu_struct.h封装了有关  pMtInfo结构体的内容,用到的部分如下图所示: 利用jansson库实现将传入结构体 pMtInfo 中包含的数据内容转换成 JSON 字符串返回 代码如下: #include <stdio.h> #include <string.h> #include "jansson.h" #include "upu_struct.h" #include "upu_proto_parse.h"

浮点型float数据强制转换成int整型

问题:如下代码 想获取某两个Decimal类型数之间的商的大小,结果偶尔出错(请注意是 偶尔) Decima t1; Decima t2; int shang =Convert.ToInt32(t1 / t2) ; 解决方法:将Decimal类型数据强制转换成INT整型时  会有四舍五入的过程.如下,需要用Math.Truncate方法来取整数位.所以区商时必须用此方法取整 问题代码: Decima t1=1.2m; Convert.ToInt32(t1)  得到1 Decima t2=1.7m