反射DataTable转实体类

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Reflection;
 5
 6 namespace Dll
 7 {
 8     public static class ToEntity
 9     {
10         /// <summary>
11         /// 将DataTable转换成实体类
12         /// </summary>
13         /// <typeparam name="T">实体类</typeparam>
14         /// <param name="dt">DataTable</param>
15         /// <returns></returns>
16         public static List<T> DtConvertToModel<T>(DataTable dt) where T:new()
17         {
18             List<T> ts = new List<T>();
19             foreach (DataRow dr in dt.Rows)
20             {
21                 T t = new T();
22                 foreach (PropertyInfo pi in t.GetType().GetProperties())
23                 {
24                     if (dt.Columns.Contains(pi.Name))
25                     {
26                         if (!pi.CanWrite) continue;
27                         var value = dr[pi.Name];
28                         if (value!= DBNull.Value)
29                         {
30                             switch (pi.PropertyType.FullName)
31                             {
32                                 case "System.Decimal":
33                                     pi.SetValue(t, decimal.Parse(value.ToString()), null);
34                                     break;
35                                 case "System.String":
36                                     pi.SetValue(t, value.ToString(), null);
37                                     break;
38                                 case "System.Int32":
39                                     pi.SetValue(t, int.Parse(value.ToString()), null);
40                                     break;
41                                 default:
42                                     pi.SetValue(t, value, null);
43                                     break;
44                             }
45                         }
46                     }
47                 }
48                 ts.Add(t);
49             }
50             return ts;
51         }
52     }
53 }

原文地址:https://www.cnblogs.com/chenyanbin/p/11123685.html

时间: 2024-10-26 17:06:33

反射DataTable转实体类的相关文章

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

在开发中可能会遇到这几种情况 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到程序里面任意调用 封装类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Android利用反射机制为实体类属性赋值

在做android项目时,有时会遇到从网络上获取json类型数据,赋值给实体类,实体类属性少可以一个一个的赋值,如果实体类有很多属性,赋值可能就要耗很长的功夫了,幸好Java给我们提供了反射机制.下面是在我在android中如何利用java反射机制给实体类赋值. 在Android中利用反射机制为实体类属性赋值,首先需要导入一下两个包 import java.lang.reflect.Field; import java.lang.reflect.Method; 给实体类赋值首先需要一个实体类,这

java android布局里的控件值 反射绑定给实体类,实体类绑定给控件,表单提交绑定很有用

注意了:根据实际情况,添加实体里字段的类型,控件类型的判断才可使用.这里控件只有TextView EditText 实体类字段只有String int类型,带值的控件添加tag ,值和实体类的字段值一致 package ice.ui.service; import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import jav

DataTable与实体类互相转换

/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T">实体类</typeparam> public class ModelHandler<T> where T : new() { #region DataTable转换成实体类 /// <summary> /// 填充对象列表:用DataSet的第一个表填充实体类 ///

DataTable转实体类

/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T">实体类</typeparam> public class ModelHandler<T> where T : new() { #region DataTable转换成实体类 /// <summary> /// 填充对象列表:用DataSet的第一个表填充实体类 ///

C# DataTable 转 实体类

C# 中查询结果DataTable转实体类: 比如:List<RtmInterview> rtmList = GetDataById( id); public List<RtmInterview> GetDataById(string id) { List<RtmInterview> rtmList = new List<RtmInterview>(); bool ConnectionOpenHere = false; try { DataTable dt

多年前写的DataTable与实体类的转换

介绍 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中,有意向将两者的模型结合起来,利用DataTable中的行状态完善一些mvc中的数据控制作用.现在把它放出来,留个纪念. 起因 很多年前,对Ado.net这块了解较深,当时公司也有一套框架,将Ado.net做成了ORMapping,所以,当时对DataTable的操作很是熟练. DataTable中的行状态很好的和界面的数据后者操作进行了关联,比如新增,修改,取消,删除等,都能在DataTable中的行状态对应起

使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类

AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/AutoMapper/AutoMapper/wiki 主要用途 领域对象与DTO之间的转换.数据库查询结果映射至实体对象. 这里主要说下使用 AutoMapper 将 IDataReader.DataSet.DataTable 转为实体的方法. 依赖文件:AutoMapper.dll.AutoMapper

反射 DataTable拓展方法 转实体对象、实体集合、JSON

Mapper类 using System; using System.Collections.Generic; using System.Data; using System.Globalization; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace CommonHelper { public class Mapper { public