DataTable转换为Entity(反射&&泛型)】的更多相关文章

public static IEnumerable<T> Parse<T>(IEnumerable<DataRow> rows) where T : class, new() { if (rows == null || Enumerable.FirstOrDefault<DataRow>(rows) == null) return (IEnumerable<T>) new T[0]; PropertyInfo[] properties = typ…
在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为泛型List<T>或是JSON. Insus.NET有把这个转换功能写成一个扩展方法: 方法源代码: public static List<T> ToList<T>(this DataTable dt) { var columnNames = dt.Columns.Cast…
可以利用反射将DataTable转换为List<T>对象:原始链接http://www.jb51.net/article/67386.htm 但是该方法在DataTable里某个字段类型是Int32会有问题,报异常:类型“System.Int64”的对象无法转换为类型“System.Int32”. 可在赋值的时候加一句: if(pi.GetMethod.ReturnParameter.ParameterType.Name == "Int32") { value = Conv…
在开发中,把查询结果以DataTable返回很方便,但是在检索数据时又很麻烦,没有模型类型检索方便. 所以很多人都是按照以下方式做的: // 获得查询结果DataTable dt = DbHelper.ExecuteDataTable(...);// 把DataTable转换为IList<UserInfo>IList<UserInfo> users = ConvertToUserInfo(dt); 问题:如果此系统有几十上百个模型,那不是每个模型中都要写个把DataTable转换为…
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Xmh.DBUnit { /// <summary> /// 将DataTable转换为List,将…
当使用Sql语句查询数据库,返回DataSet数据集. DataSet转化为数据列表,可以通过映射方式直接返回Entity数据列表 新建一个特性类,用于数据库列表列名称映射 LinqToDB提供了一个ColumnAttribute,但是通过反射不方便获取ColumnAttribute获取CustomAttributes时,虽然可以筛选到指定ColumnAttribute,但是CustomAttributeData不容易转换到ColumnAttribute var customAttributeD…
一.前因和存在的问题 前面我写了一篇<使用Emit把Datatable转换为对象集合(List<T>)>的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里面已有用emit把datareader转换为List<T>的实现方法,但是需要增加一个把DataTable转换为List<T>的方法,在网上搜索了一些代码,经过改造,加入缓存设计,整理了一下代码结构,简单测试没有问题后就发了<使用Emit把Datatable转换为对象集合(Lis…
PS:最近简单的学了学后台Servlet+JSP.也就只能学到这里了.没那么多精力去学SSH了,毕竟Android还有很多东西都没学完.. 学习内容: 1.如何使用反射+泛型构建通用DAO. 1.使用泛型+反射构建通用DAO.  DAO的概念曾经写过.其实就是数据访问对象,Date Access Object.其实就是数据库中的数据和Java对象里的一种关联关系的一系列操作.由于以前写过这个概念.就不啰嗦了..简单说一说思想.  比如说:有两张表 User表和Shop表.  这是User表中需要…
这段时间开发ASP.NETMVC应用程序,从数据库获取数据之后,需要把记录转换为数据集在视图中显示.我们需要把DataTable转换为List<T>或者DataRow转换为T. 本篇中可以学习到相关的知识,数据库方面,创建表,添加数据,存储过程等.MVC方面,创建model,创建Entity,Utility写在一个目录中,控制器创建视图操作,以及行为操作. 先从数据库: SQL代码: CREATE TABLE [dbo].[Cookbook] ( ,) PRIMARY KEY NOT NULL…
记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反射,于是查了下资料也写了个已经烂大街的DataTable转换为Model实体对象 public static IEnumerable<T> DataTableToModels<T>(this DataTable dt) where T : class, new() { //判断data…
Emit生成动态方法部分摘自网上,但是经过修改,加入了对委托的缓存以及类结构的调整,使之调用更简洁方便.大致的思路是:要实现转换datatable到某个指定对象的集合,本质是实现转换一个datarow到一个指定的对象.利用Emit动态构造该方法并缓存起来,调用时从缓存查找出来并调用,就这么简单.上代码: /// <summary> /// 把datatable转换为对象集合列表List<T> /// </summary> public class DataTableCo…
/**********************************************************************************/ // 说明: 数据转换工具. // 注意: 对象列表转换为DataTable或DataTable转换为对象列表. // 字段参照由对象的PropertyName决定. // 数据模型类的属性名必需与字段名一致, 包括大小写一致. /*************************************************…
在将DataTable转换为List<T>时,找到了网上的方案,原文链接:http://stackoverflow.com/questions/4593663/fetch-datarow-to-c-sharp-object. 使用时,遇到DbNull无法正常转换的问题,所以做了修正补充,继续发代码上来. 欢迎补充修正. using System; using System.Collections.Generic; using System.Linq; using System.Data; us…
一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable dt) { StringBuilder jsonString = new String…
看了很多人的项目,很多都是用到三层架构,其中BLL层中有一种将DataTable转换为实体的方法.一直没有明白为啥要这样做,今天特意去搜索了一下,如果没有答案我是准备提问,寻求解答了.还好找到一个相关的网页.终于理解了,心中的一个困惑可以放下了. 好处(优点): 这样做的优点如下: |  编写B层的人员无需手动填写需要的字段,直接按一下点,全都提示出来了,想用哪个用哪个,不会出现写错的情况. |  不必了解数据库结构. |  符合面向对象思想. |  实体类的属性是强类型,每个字段的类型都是已知…
C# 反射泛型 摘自:http://www.itwis.com/html/net/c/20110411/10175.html C#泛型反射和普通反射的区别,泛型反射和普通反射的区别就是泛型参数的处理上 先看一个简单的例子. class Class1<T>{  public void Test(T t)  {    Console.WriteLine(t);  }} 要利用反射动态创建该类型实例,并调用 Test 方法,我们可以使用如下方法 Type type = typeof(Class1&l…
namespace Echofool.Utility.Common { using System; using System.Collections.Generic; using System.Data; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; public class DataTableUtility { public static IEnumerable<T>…
C#在里面Datatable转换为Json的5代码示例 /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable dt) { StringBuilde…
将DataTable转换为PagedCollectionView数据,我们可以借用DataTable的GetBindableData()方法,如下: DataTable dt=new DataTable(); PagedCollectionView m_pagedCollectionView = new PagedCollectionView(dt.GetBindableData(new Connector())); this.daDatas.ItemsSource = m_pagedColle…
/// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable dt) { StringBuilder jsonString = new StringBui…
泛型     1.泛型类:具有一个或多个类型变量的类,称之为泛型类 class A<T>{ } 2.在创建泛型实例时,需要为其类型变量赋值 A<String> a = new A<String>();         *如果创建实例时,不给类型变量赋值,那么就会有一个警告 3.泛型方法:具有一个或多个类型变量的方法,称之为泛型方法 class A<T> {         public T fun(T t1) {}     } fun()方法不是泛型方法,它…
原文地址:http://tutorials.jenkov.com/java-reflection/generics.html ======================================================================================== 我经常在一些文章和论坛中看有人说Java泛型信息都会在编译时被擦除,所以你不能在运行时访问任何相关的信息.这也不完全对.在运行时,在少数情况下也是可以访问到泛型信息的.实际上,这些情况中已经满足了…
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; namespace PORM.Data { /// <summary> /// 常用映射关系帮助类 /// </summary> public class CommonMap { /// <summary> ///…
前一篇有学习过<把List<T>转换为DataTable>http://www.cnblogs.com/insus/p/8043173.html 那此篇,将是学习反向,把DataTable转换为List<T>.这个方法使用的较多.很多情况之后,从数据读出来的数据是DataSet或是DataTable.需要把它们转换为List<T>之后,再转换为json. 下面Insus.NET写一个扩展方法: public static List<T> ToLi…
原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数…
将DataTable转换为List,将List转换为DataTable的实现类 public static class DataTableHelper { public static DataTable ConvertTo<T>(IList<T> list) { DataTable table = CreateTable<T>(); Type entityType = typeof(T); PropertyDescriptorCollection properties…
using System.Data; using System.Reflection; using System.Collections; using System.Collections.Generic; using System; namespace BI.ERP.DAL { public class DataSet转换List { /// <summary> /// 泛型集合与DataSet互相转换 /// </summary> public class IListDataS…
Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Linq.Expressions; 6 using System.Reflection; 7 using System.Reflection.Emit; 8 9 publ…
/// <summary>         /// Datatable转换为Json         /// </summary>        /// <param name="table">Datatable对象</param>         /// <returns>Json字符串</returns>         public static string ToJson(DataTable dt)   …
在进行数据传递的时候,有时我们需要通过Ajax的方式或者其他的方式传递一个数据列表,可以将DataTable或者其他形式的数据列表转换为JSON的格式,通过Ajax实体的形式进行传递. 比如说: /// <summary> /// DataTable 转换为Json /// </summary> /// <param name="dt">datatable</param> /// <returns></returns&g…