C# List<T>DataTable

学习自:博客园<吃了炫迈的猫>

Overview

数据!!个人认为程序就是将数据变着花样的显示它。那么这个时候我们的数据处理和获取就时我们的关键一步,如果你数据都处理不好,何谈形象的显示数据呢。

List<T> 转 DataTable

我们这边使用Entity Framework从数据库获取数据。

我们先看一下完整的源码:

void ListToDataTable()
{
using (var context = new WorldSkillsChina2016Entities())
{
List<User> userList = (from a in context.User select a).ToList<User>();//将查询出来的User表 转换成一个集合 DataTable dt = new DataTable();//创建一个DataTable来存储数据 PropertyInfo[] properties = new User().GetType().GetProperties();//然后我们获取User表的所有属性。注意:是属性而不是字段。 foreach (var item in properties)//根据我们的属性创建DataTable的列
{
dt.Columns.Add(item.Name, item.PropertyType);
} for (int i = 0; i < userList.Count; i++)//使用for循环添加数据
{
object[] objects = new object[properties.Length];//创建一个和User类等长的数组。 for (int a = 0; a < properties.Length; a++)
{
objects[a] = properties[a].GetValue(userList[i], null);//循环添加数据
} dt.LoadDataRow(objects, true);//将数据作为一整行的形式添加到我们的DataGridView中。
}
this.dataGridView1.DataSource = dt;//数据实现绑定。
} }

接着我们根据我们的源码来讲解一下。

  • 首先我们创建了一个List<User>来接收我们的User表的数据。
  • 然后我们创建一个DataTable
  • 获取User类的所有属性,只是属性不包含字段。
  • 使用foreach 根据User类的属性,来创建我们DataTable的列。
  • 接着使用for循环添加数据
    • 创建一个和User表属性等长的一个数组 。
    • 循环每个User对象根据的指定属性获取值,并依次付给数组的指定位置。
    • 将整个数组以行的方式添加到我们的DataTable中。
  • 最后将这个DataTable和DataGridView 进行绑定。

C# List<T> 转 DataTable的更多相关文章

  1. DataTable 转换成 Json的3种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...

  2. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  3. DataTable转换成IList<T>的简单实现

    DataTable的无奈 很多时候,我们需要去操作DataTable.但DataTable的操作,实在是太不方便了.Linq?lambda表达式?统统没有... 特别是对现有结果集做进一步筛选,这样的 ...

  4. 自用的基于Emit的C#下DataTable转实体类方法

    之前一直在做WebForm的开发,数据绑定时直接DataTable绑定Gridview很方便,但是最近开始往MVC转,数据列表的传递和页面展示基本上是以List为主,像下面这样,遍历实体类的各个字段去 ...

  5. jquery dataTable汉化(插件形式)

    1.jquery dataTable.js 官网:http://datatables.net/ 中文:http://dt.thxopen.com/ 2.汉化提示信息(放到xx.js中,引入即可) 注: ...

  6. DataTable与DTO对象的简易转换类

    在web开发过程中,有时候为了数据传输的方便,比如:后台需要更新前端的ViewModel,此时我们定义一个与前端ViewModel结构一样的DTO对象,从数据层获取数据后,将数据封装成DTO然后序列化 ...

  7. asp.net DataTable导出Excel 自定义列名

    1.添加引用NPOI.dll 2.cs文件头部添加 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.IO; 3.代码如 ...

  8. asp.net dataTable转换成Json格式

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  9. DataTable的orderby有关问题

    在网上找了一个在后台重新对DataTable排序的方法(之所以不在数据库是因为我生成的是报表,写了存储过程用的表变量,order by也要用变量,死活拼不起来,sql能力没过关,动态sql也试了) s ...

  10. 关于c#在DataTable中根据条件删除某一行

    我们经常会将数据源放在DataTable里面,但是有时候也需要移除不想要的行,下面的代码告诉你们 DataTable dts:                DataRow[] foundRow;   ...

随机推荐

  1. Hive DDL、DML操作

    • 一.DDL操作(数据定义语言)包括:Create.Alter.Show.Drop等. • create database- 创建新数据库 • alter database - 修改数据库 • dr ...

  2. layui table+复杂表头+合并单元格

    效果图: 问题:行hover效果感觉错乱  所以改为透明色 代码: <!DOCTYPE html> <html lang="en"> <head> ...

  3. ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

    ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面 ...

  4. vim 入门笔记

    前言 本文的初衷 从知道 vim 开始我就有心学习并尝试过几次,每次都是暂时的心血来潮,最终全部不了了之,就连最基本的 vimtutor 我都是学个两三节就半途而废,所以这次干脆写篇文章,利用几次学习 ...

  5. Dynamics 365-当OrganizationServiceProxy是Null的时候

    不少从事D365研发工作的朋友,可能或多或少都经历过这么一种情况,使用CrmServiceClient对象初始化一个实例,然后发现OrganizationServiceProxy对象是null.不仅如 ...

  6. mybatis基础 笔记

    Mybatis依赖<!--测试--> <dependency>      <groupId>junit</groupId>      <artif ...

  7. mysql实践:sql优化

    ---恢复内容开始--- 设计表的时候 1. 不同的表涉及同一个公共意义字段不要使用不同的数据类型(可能导致索引不可用,查询结果有偏差) 2. 不要一张表放太多的数据     主表20~30个字段   ...

  8. python访问kafka

    操作系统 : CentOS7.3.1611_x64 Python 版本 : 3.6.8 kafka 版本 : 2.3.1 本文记录python访问kafka的简单使用,是入门教程,高阶读者请直接忽略. ...

  9. 软件测试价值提升之路- 第三章"拦截缺陷 "读书笔记

    作为一个测试团队,基本的职责是:测试产品,发现缺陷,报告结果,使每个版本的测试水准稳步提升.这些价值是作为一个测试所必须具备的,发挥这些价值能够让测试获得研发团队的基本信任.这类价值分为3部分: 1) ...

  10. Java描述设计模式(05):原型模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.原型模式简介 1.基础概念 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出 ...