DataRow转实体
调用 DataRow row = new DataRow();
ConvertToEntity<实体类>(row)
private T ConvertToEntity<T>(DataRow row) where T : new()
{
T t = new T();
PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性
foreach (PropertyInfo pi in propertys)
{
if (row.Table.Columns.Contains(pi.Name))
{
if (!pi.CanWrite) continue;
var value = row[pi.Name];
try
{
if (value != DBNull.Value && value != null && value.ToString() != "")
{ if (pi.PropertyType.FullName.ToUpper().Contains("DECIMAL"))
{
pi.SetValue(t, decimal.Parse(value.ToString()), null);
}
else if (pi.PropertyType.FullName.ToUpper().Contains("DOUBLE"))
{
pi.SetValue(t, double.Parse(value.ToString()), null);
}
else if (pi.PropertyType.FullName.ToUpper().Contains("INT32"))
{
//if (value.ToString().Contains("."))
//{ //}
//pi.SetValue(t, int.Parse(value.ToString()), null);
pi.SetValue(t, Convert.ToInt32(value.ToString()), null);
}
else if (pi.PropertyType.FullName.ToUpper().Contains("INT16"))
{
if (value.ToString().Contains("."))
{ }
pi.SetValue(t, short.Parse(value.ToString()), null);
}
else if (pi.PropertyType.FullName.ToUpper().Contains("STRING"))
{
pi.SetValue(t, value.ToString(), null);
}
else if (pi.PropertyType.FullName.ToUpper().Contains("DATETIME"))
{
pi.SetValue(t, DateTime.Parse(value.ToString()), null);
}
else
pi.SetValue(t, value, null);
} }
catch (Exception ex)
{
//throw ex;
} }
}
return t;
}
DataRow转实体的更多相关文章
- DataTable转实体Model,DataRow转实体Model,DataTable转泛型T,DataRow转泛型T
前言,此方法利用反射将DataRow转成实体,由于反射性能不行,大家就看看就行了吧. 代码来啦 using System; using System.Collections.Generic; usin ...
- DataRow映射实体
public static T ConvertToModel<T>(DataRow dr) where T : new() { T t = new T(); Type modelType ...
- DataTable转成实体列表 和 DataRow转成实体类
#region DataTale转为实体列表 /// <summary> /// DataTale转为实体列表 /// </summary> /// <typeparam ...
- DataTable与实体类互相转换
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
- C#中DataTable与实体集合通用转换(使用扩展方法)
本案例提供了:把DataRow转换为单个实体.dataTable转换为List泛型支持时间格式转换. 下文的方法都是扩展方法.扩展方法要求写在静态类中,方法也要静态. 它必须在一个非嵌套.非泛型的静态 ...
- 用反射,将DataRow行转为Object对象
/// <summary> /// 反射辅助类 /// </summary> public class ReflectionHelper { /// <summary&g ...
- winfrom DataSet和实体类的相互转换
最近做WInfrom项目,对表格和控件的数据绑定非常喜欢用实体类对象来解决,但是绑定以后 又怎么从控件中拿到实体类或者转换为datatable 或者dataset呢 经过在网上的搜索以及自己的改进 完 ...
- C# DataTable 转 实体类
C# 中查询结果DataTable转实体类: 比如:List<RtmInterview> rtmList = GetDataById( id); public List<RtmInt ...
- DataTable转实体类
/// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...
随机推荐
- MyBatis-Insert、Delete、Update的注意事项
MyBatis-Insert.Delete.Update的注意事项 插入/更新乱码的解决 出现插入乱码,首先要考虑数据库的编码集是不是UTF-8 如果数据库的编码无误,查看MyBatis的全局配置文件 ...
- js学习(三)对象与事件
JavaScript 对象 1.JavaScript 对象:拥有属性和方法的数据. 2.在 JavaScript中,几乎所有的事物都是对象. 3.定义一个person对象 var person = { ...
- greenplum 数组操作
参考:http://gpdb.docs.pivotal.io/4390/admin_guide/query/topics/functions-operators.html Table 4. Advan ...
- day08-Python运维开发基础(文件操作与相关函数、函数基础)
1. 文件操作及相关函数 # ### 文件操作 """ fp = open("文件名称",mode=模式,encoding=编码集) fp 文件io对 ...
- vSphere HA 原理与配置
内容预览: 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控 ...
- C# log4net相关配置说明
添加相关文件到工程 链接: https://pan.baidu.com/s/1o83Juo6 密码: inkg 下载附件, 把里的log4net.dll 和 log4net.config 复制到工程目 ...
- eshop1-大型电商架构演进
1. 项目初期 2. 服务器分离 以上的服务分离架构,即使文件服务crash 了,但是application server 和 Database Server 继续可以访问运行 3. 基于并发访问越来 ...
- DevOps - 与敏捷方法区别
章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...
- UVA - 1600 Patrol Robot (巡逻机器人)(bfs)
题意:从(1,1)走到(m,n),最多能连续穿越k个障碍,求最短路. 分析:obstacle队列记录当前点所穿越的障碍数,如果小于k可继续穿越障碍,否则不能,bfs即可. #pragma commen ...
- HihoCoder第六周:01背包问题
01背包问题大二的时候就接触过了,几行关键代码自己也都看过很多遍了,但是很多代码一直都没能理解.所以今天拿表来好好地画一画,弄懂其中的动态规划究竟什么含义. 1038 : 01背包 时间限制:2000 ...