调用                       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转实体的更多相关文章

  1. DataTable转实体Model,DataRow转实体Model,DataTable转泛型T,DataRow转泛型T

    前言,此方法利用反射将DataRow转成实体,由于反射性能不行,大家就看看就行了吧. 代码来啦 using System; using System.Collections.Generic; usin ...

  2. DataRow映射实体

    public static T ConvertToModel<T>(DataRow dr) where T : new() { T t = new T(); Type modelType ...

  3. DataTable转成实体列表 和 DataRow转成实体类

    #region DataTale转为实体列表 /// <summary> /// DataTale转为实体列表 /// </summary> /// <typeparam ...

  4. DataTable与实体类互相转换

    /// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...

  5. C#中DataTable与实体集合通用转换(使用扩展方法)

    本案例提供了:把DataRow转换为单个实体.dataTable转换为List泛型支持时间格式转换. 下文的方法都是扩展方法.扩展方法要求写在静态类中,方法也要静态. 它必须在一个非嵌套.非泛型的静态 ...

  6. 用反射,将DataRow行转为Object对象

    /// <summary> /// 反射辅助类 /// </summary> public class ReflectionHelper { /// <summary&g ...

  7. winfrom DataSet和实体类的相互转换

    最近做WInfrom项目,对表格和控件的数据绑定非常喜欢用实体类对象来解决,但是绑定以后 又怎么从控件中拿到实体类或者转换为datatable 或者dataset呢 经过在网上的搜索以及自己的改进 完 ...

  8. C# DataTable 转 实体类

    C# 中查询结果DataTable转实体类: 比如:List<RtmInterview> rtmList = GetDataById( id); public List<RtmInt ...

  9. DataTable转实体类

    /// <summary> /// DataTable与实体类互相转换 /// </summary> /// <typeparam name="T"& ...

随机推荐

  1. Python format语法

    a = {"name" : "alex","age":16} v = "my name is {name}, my age is ...

  2. 【LeetCode】加油站

    [问题]在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中 ...

  3. 前端IT攻城狮--网址搜藏(-- 欢迎留言补充 --)

    一. 插件 1.validator: https://validator.niceue.com/docs/                 (一款专业表单验证插件) 2.jQuery Tabs-Eas ...

  4. 001-PHP静态变量

    <?php function ADD1() { static $a = 10; //定义静态变量 $a += 1; echo "静态变量a的值为:" . $a . " ...

  5. YOKOGAWA ProSafe-RS 通道测试 CENTUMVP

    20180927 我并没有调试这个项目 仅仅是听同事讲解了 横河ProSafe-RS通道测试 然后做了笔记 软件安装并不在本记录中 ProSafe-RS版本 CENTUMVP版本 ProSafe-RS ...

  6. Java之集合

    前言: 在写程序当中,集合会经常使用,今天听了马老师的课,写一些自己的总结 正文: 集合最重要的就是一个图,一个类,三个知识点,六个接口 说到图就是上面的图,这个图可以帮我们理解这些接口的继承关系 1 ...

  7. 【测试】性能测试及性能测试工具Loadrunner

    性能测试简介 软件系统的性能包括很多方面,有执行效率,资源占用,系统稳定性,安全性,兼容性,可靠性,可扩展性等.这些都是可以衡量一个软件系统性能好坏的指标.而性能测试是指通过自动化测试工具去模拟多种正 ...

  8. 官网英文版学习——RabbitMQ学习笔记(五)Publish/Subscribe

    发布/订阅模式:把一个消息发送给多个消费者. 前几篇文章的思想是,我们好像看到了生产者将消息直接发送给queue,然后消费者也从queue中进行消费.其实并非如此,RabbitMQ中的消息传递模型的核 ...

  9. [LeetCode] 929. Unique Email Addresses 独特的邮件地址

    Every email consists of a local name and a domain name, separated by the @ sign. For example, in ali ...

  10. 机器学习(ML)一之 Linear Regression

    一.线性回归 1.模型 2.损失函数 3.优化函数-梯度下降 #!/usr/bin/env python # coding: utf-8 import torch import time # init ...