c# DataTable 帮助类

public class DataTableHelper

{

#region DataTable转IList

/// <summary>

/// DataTable转IList集合

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="dataTable"></param>

/// <returns></returns>

public static IList<T> ToList<T>(DataTable dataTable) where T : class, new()

{

IList<T> list = new List<T>();// 定义集合

if (dataTable != null)

{

foreach (DataRow dr in dataTable.Rows)

{

T t = new T();

PropertyInfo\[\] propertys = t.GetType().GetProperties();// 获得此模型的公共属性

foreach (PropertyInfo pi in propertys)

{

var name = pi.Name;

if (dataTable.Columns.Contains(name))

{

if (!pi.CanWrite) continue;

object value = drname;

if (value != DBNull.Value)

{

pi.SetValue(t, value, null);

}

}

}

list.Add(t);

}

}

return list;

}

#endregion

}

相关推荐
佳児素花痴╮3 分钟前
C++基础速通
开发语言·c++
是立不是利7 分钟前
深入理解JavaScript事件委托
开发语言·前端·javascript
啊阿狸不会拉杆7 分钟前
《计算机网络-自顶向下方法》6.4 交换局域网 读书笔记
开发语言·计算机网络·php
心中有你021421 分钟前
Python Tkinter 情侣恋爱日记桌面小程序(本地文件存储,无数据库)
开发语言·python
疯狂打码的少年1 小时前
【计算机网络】OSI/RM七层模型(层次结构、各层功能速览)
开发语言·笔记·计算机网络·php
小灰灰搞电子1 小时前
Rust+Slint 实现ModbusRTU从机调试助手源码分享
开发语言·rust·modbusrtu
程序喵大人1 小时前
【C++入门】值类别与表达式 - 03 引用绑定:为什么有些参数能接住临时对象
开发语言·c++·引用绑定
子非鱼a1 小时前
【WEB】[RoarCTF 2019]Easy Java
java·开发语言
软件黑马王子1 小时前
19.资源加载模块:主要作用和基本原理
开发语言·前端框架·c#
fengkai45452 小时前
七、华为云网络类 + 计算类云服务实验总结
开发语言·php