DataTable 转换为List】的更多相关文章

一.前因和存在的问题 前面我写了一篇<使用Emit把Datatable转换为对象集合(List<T>)>的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里面已有用emit把datareader转换为List<T>的实现方法,但是需要增加一个把DataTable转换为List<T>的方法,在网上搜索了一些代码,经过改造,加入缓存设计,整理了一下代码结构,简单测试没有问题后就发了<使用Emit把Datatable转换为对象集合(Lis…
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…
在开发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…
这段时间开发ASP.NETMVC应用程序,从数据库获取数据之后,需要把记录转换为数据集在视图中显示.我们需要把DataTable转换为List<T>或者DataRow转换为T. 本篇中可以学习到相关的知识,数据库方面,创建表,添加数据,存储过程等.MVC方面,创建model,创建Entity,Utility写在一个目录中,控制器创建视图操作,以及行为操作. 先从数据库: SQL代码: CREATE TABLE [dbo].[Cookbook] ( ,) PRIMARY KEY NOT NULL…
一. /// <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层的人员无需手动填写需要的字段,直接按一下点,全都提示出来了,想用哪个用哪个,不会出现写错的情况. |  不必了解数据库结构. |  符合面向对象思想. |  实体类的属性是强类型,每个字段的类型都是已知…
在开发中,把查询结果以DataTable返回很方便,但是在检索数据时又很麻烦,没有模型类型检索方便. 所以很多人都是按照以下方式做的: // 获得查询结果DataTable dt = DbHelper.ExecuteDataTable(...);// 把DataTable转换为IList<UserInfo>IList<UserInfo> users = ConvertToUserInfo(dt); 问题:如果此系统有几十上百个模型,那不是每个模型中都要写个把DataTable转换为…
记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义.后面接触到了反射,于是查了下资料也写了个已经烂大街的DataTable转换为Model实体对象 public static IEnumerable<T> DataTableToModels<T>(this DataTable dt) where T : class, new() { //判断data…
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…
可以利用反射将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…
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…
将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…
/// <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…
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,将…
/// <summary> /// DataTable 转换为 Html /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GetHtmlString(DataTable dt) { StringBuilder sb = new StringBuilder(); sb.Append("<…
续上两篇文章,使用emit构造dynamic method,把 datareader转换为实体,以避免直接使用反射来实现带来的性能损失.代码看似没有纰漏,但是实际上我在framwork4下运行时,调用 dynamic method时, 系统都会报 “ 找不到方法 ‘?’  ”的错误,没有找到问题所在,网上查了下资料,发现在framwork3.5以上还可以用表达式树动态构造 执行的语句,并动态编译成方法.性能上与emit还是接近,,而且代码精简了许多. 废话不多说,上代码 public class…
今天给大家分享一下,如何将DataTable转为List和Array,为此小U也花了不少时间研究,最后发现没有那么复杂. 先来说说List和Array的区别: List:就像一个链条,存储数据的空间可以不连续. Array:就像一个Execl中的某一列,但是它必须在声明的时候就指定存储空间的大小,换句换话就是声明的时候需要初始化数据的大小. 那什么时候用Array,什么时候用List呢? 总结1:当我们不确定大小时,最好使用List代替Array 总结2:当需要大量的查找操作时,最好使用Arra…
备注:摘自网上 有附地址 public static List<T> DataTableToEntities<T>(this DataTable dt) where T : class, new() { ) { return null; } List<T> entities = new List<T>(); List<string> columnNames = new List<string>(); ; i < dt.Colum…
点击单元格 可以输出行和列,这个功能可以在一些特殊的地方用 public static string GetHtmlString(DataTable dt) { StringBuilder sb = new StringBuilder(); sb.Append("<html><head>"); sb.Append("<title>Excel转换为Table</title>"); sb.Append("<…
public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List<T>(); foreach (DataRow row in dt.Rows) { T item = GetItem<T>(row); data.Add(item); } return data; } /// <summary> /// 将DataRow转换成实体对象 ///…
最后的格式为:[{},{},...] StringBuilder DataTableToJSON(DataTable dt) { string columnName; StringBuilder builder = new StringBuilder(); if (dt != null && dt.Rows.Count >= 1) { builder.Append("["); for (int i = 0; i < dt.Rows.Count; i++) {…
//第一种:使用StringBuilder  public string DataTableToJson(DataTable table) { var JsonString = new StringBuilder(); ) { JsonString.Append("["); ; i < table.Rows.Count; i++) { JsonString.Append("{"); ; j < table.Columns.Count; j++) { )…
private string DataTableToJson(DataTable dt) { string Json = ""; Json = Json + "["; foreach (DataRow dr in dt.Rows) { Json = Json + "{"; foreach (DataColumn dc in dt.Columns) { Json = Json + "\"" + dc.ColumnNam…
1. 方法public static IList<T> ConvertTo<T>(DataTable table) { if (table == null) { return null; } List<DataRow> rows = new List<DataRow>(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo<T>(rows); }2. 调…