DataTable转List,DataTable转为Model对象帮助类
2024-10-18 09:35:32
DataTable转List,DataTable转为Model对象帮助类
public class ModelConvertHelper<T> where T : new()
{
public static List<T> ConvertToModel(DataTable dt)
{
// 定义集合
List<T> ts = new List<T>();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name; // 检查DataTable是否包含此列
if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
ts.Add(t);
}
return ts;
}
public static T ConvertToInfo(DataTable dt)
{
// 定义集合
T ts = new T();
// 获得此模型的类型
Type type = typeof(T);
string tempName = "";
foreach (DataRow dr in dt.Rows)
{
T t = new T();
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name; // 检查DataTable是否包含此列
if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue;
object value = dr[tempName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
return t;
}
return new T();
}
}
最新文章
- remove name=";ProxyModule“会导致重复执行
- LuaSrcDiet工具介绍(lua源码处理软件)
- 底部漂浮DIV
- SDWebImage
- Java泛型总结
- Swift游戏实战-跑酷熊猫 00 游戏预览
- 数字集成电路设计-8-一个简单sobel图像边缘检测加速器的设计,实现,仿真与综合
- Windows上部署Redis
- JavaSE学习总结第21天_IO流3
- 怎样看paper 最有效率
- conda创建py27虚拟环境安装theano(anaconda3)
- -1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常
- npm安装webpack失败(mac和window都可能会遇到这样的情况,以下问题主要以mac为例)
- shell script exit if any command fails
- input属性为number时,如何去掉右边的 +、-号
- CentOS 7 安装 .Net Core 2.0 详细步骤
- sessionStorage和localStorage的区别
- PHP7 学习笔记(五)安装event扩展(libevent)
- gitlab:开发+测试+发布的全流程图
- Git Step by Step – (3) Git对象模型