C# DataTable 转换为 实体类对象实例
public class User
{
public int ID { get; set; }
public string Name { get; set; }
}
//对应数据库表:
//User
//字段:ID、Name
那么你也许需要编写将DataTable 转换为实体对象的方法,便利DataTable.Rows 获得并填充。。
下面是我写的一个通用方法,分享+记录,便于日后直接Copy ~
代码如下:
private static List<T> TableToEntity<T>(DataTable dt) where T : class,new()
{
Type type = typeof(T);
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
PropertyInfo[] pArray = type.GetProperties();
T entity = new T();
foreach (PropertyInfo p in pArray)
{
if (row[p.Name] is Int64)
{
p.SetValue(entity, Convert.ToInt32(row[p.Name]), null);
continue;
}
p.SetValue(entity, row[p.Name], null);
}
list.Add(entity);
}
return list;
}
// 调用:
List<User> userList = TableToEntity<User>(YourDataTable);
相关推荐
-
C#实现根据实体类自动创建数据库表
.Net新手通常容易把属性(Property)跟特性(Attribute)搞混,其实这是两种不同的东西 属性指的类中封装的数据字段:而特性是对类.字段.方法和属性等元素标注的声明性信息 如下代码(Id.Name为User的属性,[DbKey]为Id的特性) /// <summary> /// 用户信息 /// </summary> public class User { [DbKey] public string Id { get; set; } public string Nam
-
c# DataTable与不同结构实体类转换的方法实例
在实际开发过程中,或者是第三方公司提供的数据表结构,与我们系统中的实体类字段不对应,遇到这样我们怎么处理呢?可能有人会说,在转换时创建一个实体对象,对表里的数据逐行遍历来实例化这个实体对象不就完了.的确没错,这方法可行,但是这个方法效率极低,遇到亿万数据的话那就要实例化亿万个对象,由此可见它的效率了.先看一下我的实体类 复制代码 代码如下: /// <summary>/// 具体的实体类,和数据表中不同/// </summary>public class Person{ [D
-
C# 面向对象的基本原则
C#面向对象的基本原则 一.面向接口编成而不是实现 [Code to an interface rather than to an implementation.] 二.优先使用组合而非继承 [Favor Composition Over Inheritance.] 三.SRP: The single responsibility principle 单一职责 系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成.[Every object in your syste
-
C#实现实体类和XML相互转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T>(T obj) { using (StringWriter sw = new StringWriter()) { Type t= obj.GetType(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.
-
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
本文实例讲述了C#实现XML与实体类之间相互转换的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Xml; using System.Xml.Serialization; /// <summary> /// Xml序列化与反序列化 //
-
C#对象与XMl文件之间的相互转换
C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于BinaryFormatter的方式需要实现ISerializable接口,而XmlSeriializ不需要实现对应的接口,可以直接序列化.在这里面我们主要采用XMlSerialize来实现对应的序列化操作进而实现对应的对象和XMl文件之间的转换关系. 在通过序列化实现对应的转换关系操作的功能时,我首先创建了D
-
C#实现实体类与字符串互相转换的方法
本文实例讲述了C#实现实体类与字符串互相转换的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Text; namespace PackDLL.Data.ConvertData { /// <summary> /// 实体类.字符串互相转换 /// </summary> public class PackReflectionEntity<T> { //
-
c#对象反序列化与对象序列化示例详解
1.对象序列化的介绍 (1).NET支持对象序列化的几种方式二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下.SOAP序列化:对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的.XML
-
C#编程获取实体类属性名和值的方法示例
本文实例讲述了C#编程获取实体类属性名和值的方法.分享给大家供大家参考,具体如下: 遍历获得一个实体类的所有属性名,以及该类的所有属性的值 //先定义一个类: public class User { public string name { get; set; } public string gender { get; set; } public string age { get; set; } } //实例化类,并给实列化对像的属性赋值: User u = new User(); u.name
-
浅谈对c# 面向对象的理解
一.了解面向对象 1.概念基本理解:1).一个个体可以看做是一个对象,例如:人这个个体: 2).有共同属性的一类作为一个个体,例如:学生.白领.农民工: 3).结构体是用户自定义的数据类型,可以定义不同数据类型的变量,结构体也是面向对象的核心: 2.基本特性: 1)封装:是隐藏信息的特性,具有"封装"意识,是掌握面向对象分析与设计技巧的关键. 最简单的理解:创建一个对象的整体,使对象的属性可以具有赋值.取值的功能,也就是对象中的变量可以赋值.取值.,是一种认为的抽象出来的对象的概念.
-
C#判等对象是否相等的方法汇总
本文以实例形式展示了C#判等对象是否相等的常用方法,非常实用,可供大家参考借鉴之用.具体分析如下: 一.判断相等的3个方法 1.实例方法 public virtual bool Equals(object obj) { return RuntimeHelpers.Equals(this, obj); } 2.比较值类型静态方法 public static bool Equals(object objA, object objB) { return ((objA == objB) || (((ob
随机推荐
- jQuery插件bxSlider实现响应式焦点图
- 简述AngularJS的控制器的使用
- 微信小程序中的swiper组件详解
- 详解Tomcat7中WebSocket初探
- Java中双向链表详解及实例
- 解决Java原生压缩组件不支持中文文件名乱码的问题
- CentOS7 禁用Transparent Huge Pages的实现方法
- 数据结构之伸展树详解
- JavaScript给url网址进行encode编码的方法
- Python聚类算法之凝聚层次聚类实例分析
- jQuery满意度星级评价插件特效代码分享
- Android实现底部图标与Fragment的联动实例
- Java和Android的LRU缓存及实现原理
- sqlserver禁止management studio的自动提交事务
- Python Json序列化与反序列化的示例
- Python模块搜索路径代码详解
- Vue press 支持图片放大功能的实例代码
- 小程序实现左右来回滚动字幕效果
- js字符串类型String常用操作实例总结
- JavaSE文件操作工具类FileUtil详解