C# DataTable to List<T> based on reflection.
From
https://www.cnblogs.com/zjbky/p/9242140.html
static class ExtendClass
{
public static List<T> ToDataList<T>(this DataTable dt)
{
var list = new List<T>();
var plist = new List<PropertyInfo>(typeof(T).GetProperties());
foreach (DataRow item in dt.Rows)
{
T s = Activator.CreateInstance<T>();
for (int i = ; i < dt.Columns.Count; i++)
{
PropertyInfo info = plist.Find(p => p.Name == dt.Columns[i].ColumnName);
if (info != null)
{
try
{
if (!Convert.IsDBNull(item[i]))
{
object v = null;
if (info.PropertyType.ToString().Contains("System.Nullable"))
{
v = Convert.ChangeType(item[i], Nullable.GetUnderlyingType(info.PropertyType));
}
else
{
v = Convert.ChangeType(item[i], info.PropertyType);
}
info.SetValue(s, v, null);
}
}
catch (Exception ex)
{
throw new Exception("字段[" + info.Name + "]转换出错," + ex.Message);
}
}
}
list.Add(s);
}
return list;
}
}
C# DataTable to List<T> based on reflection.的更多相关文章
- winform excel导入--自带office.interop.excel方式
		用npoi方式,遇到一个问题,有的excel用加密软件(盖章,只读等)生成的解析不了,所以换成自带的方式,可以解决. 需要引用系统自带Microsoft.office.interop.excel pu ... 
- Rewrite MSIL Code on the Fly with the .NET Framework Profiling API
		http://clrprofiler.codeplex.com/ http://blogs.msdn.com/b/davbr/archive/2012/11/19/clrprofiler-4-5-re ... 
- Filter execute order in asp.net web api
		https://stackoverflow.com/questions/21628467/order-of-execution-with-multiple-filters-in-web-api Som ... 
- Unity容器声明周期管理
		Having said that, here is a solution that you can use with the Unity container: Create some custom a ... 
- Winform导入Excel数据到数据库
		public partial class ImportExcel : Form { AceessHelpers accessHelper = new AceessHelpers(); public I ... 
- 几个类和Table的方法
		public class TableHelper { public static DataTable CreateTableFromClass(Type t) { DataTable dt = new ... 
- 将数组对象转换成DataSet
		public static DataSet ObjectArrayToDataSet(object[] objArr) { if (objArr.Length == 0) return null; D ... 
- The Reflection And Amplification Attacks && NTP Reply Flood Attack Based On NTP
		目录 . NTP简介 . NTP协议格式 . NTP Reflect反射漏洞和NTP协议的关系 . 漏洞触发的前提和攻击需要的步骤 . 针对漏洞的攻防思考 1. NTP简介 Network Time ... 
- datatable和list的转换
		在开发中,把查询结果以DataTable返回很方便,但是在检索数据时又很麻烦,没有list<T>检索方便.但是数据以ILIST形式返回,就为我们在.NET中使用传统的数据绑定造成了不便.下 ... 
随机推荐
- Android View 的添加绘制流程 (二)
			概述 上一篇 Android DecorView 与 Activity 绑定原理分析 分析了在调用 setContentView 之后,DecorView 是如何与 activity 关联在一起的,最 ... 
- at、crontab、anacron的基本使用
			Linux的任务调度机制主要分为两种: 1. 执行一次:将在某个特定的时间执行的任务调度 at 2. 执行多次: crontab 3.关机后恢复尚未执行的程序 anacron. ①at at命令用于在 ... 
- Caffe 图像分类
			本文主要描述如何使用 CAFFE 进行图像分类. 开发环境要求:windows 10 64位.Visual Studio 2017..NET framework 4.6.1 分类 在一个项 ... 
- JDK动态代理和CGLIB字节码增强
			一.JDK动态代理 Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口.目标接口的类加载器以及 Invocatio ... 
- Linux上ES单机版安装
			设置 IP 地址 vi /etc/sysconfig/network-scripts/ifcfg-ens32 重启网卡 [root@localhost ~] systemctl restart n ... 
- python面试题(实时更新)
			1.以下代码输出为: list1 = {':2} list2 = list1 list1['] = 5 sum = list1['] print(sum) 解析:10 b = a: 赋值引用,a 和 ... 
- JavaScript实战实例剖析——(激励倒计时日历)
			如今JavaScript在前端开发中的地位越来越高,掌握JavaScript的深度往往能决定你职业道路深远,这次通过制作 带着倒计时功能的激励日历的小实例,进一步细致的掌握JavaScript的语法与 ... 
- webpack到底是干什么用的?
			转载于:https://segmentfault.com/a/1190000014148611?utm_source=tag-newest 概念问题一:什么是webpack和grunt和gulp有什么 ... 
- mysql那些事(4)建库建表编码的选择
			mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就 ... 
- cesium添加多个geojson文件并分别控制显示和隐藏
			/*获取geojson数据*/ function get_geojson(name,h,n){ let x=document.getElementById(n); if(x.className === ... 
