泛型转Datatable

  //自定义扩展方法
    public static class ExtMethod
    {
     //泛型转为DataTable
        public static DataTable AsDataTable<T>(this IEnumerable<T> data)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            var table = new DataTable();
            foreach (PropertyDescriptor prop in properties)
                table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
            foreach (T item in data)
            {
                DataRow row = table.NewRow();
                foreach (PropertyDescriptor prop in properties)
                    row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
                table.Rows.Add(row);
            }
            return table;
        }
    }
时间: 2024-10-12 18:55:08

泛型转Datatable的相关文章

实体对象,List泛型 转换为DataTable

/// <summary>        /// 实体对象转换DataTable        /// </summary>        /// <param name="entity">实体对象</param>        /// <returns>DataTable</returns>        public static DataTable GetDataTableByEntity(object en

泛型初了解

List<T>泛型只是泛型中的一种,很多地方都可以用到泛型,dictionary.list.反射.委托-- 泛型 程序设计语言的一种特性,使得程序员在强类型程序设计语言中可以定义一些可变的部分,这些可变的部分在使用前必须做出指明,泛型实际是具有占位符的类.结构.接口.和方法. 占位符:先占住一个固定的位置,等着你再往里面添加内容的符号 强类型语言:不同类型之间有严格的定义,只有相同的变量才能操作. 弱类型语言:没有明显的类型区别,各个类型之间可以自动的转换. 在三层中师父就要求不可以将D层的传

C/S总结

学习完了C/S这个大阶段,都不知道自己是怎么走过来,现在,回头看一下,感觉自己也挺有收获的,下面我主要是把我所写的博客总结了一下. 软件工程主要的内容集中在软件设计的步骤上: 计划(项目开发计划) 需求分析(软件需求) 设计(概要.详细.数据库) 编码 测试(测试计划.测试分析) 运行和维护 文档:开发前需准备好:项目可行性项目.项目开发计划.软件需求分析说明书.概要设计.详细设计.数据要求说明.数据库设计: 开发中:项目开发进度月报.项目开发总结报告: 开发后:测试计划说明书.测试分析分析说明

ASP.NET开发,且编且改,分清职责

本篇Insus.NET使用一个实例,分享在ASP.NET开发时,一个功能一个方法(函数),且编且改,一步一个脚印把实例完成.在方法多变多形式的情况之下,怎样把写出来程序简单明了. 下面是一个Excel文档:http://download.cnblogs.com/insus/ASPDOTNET/Book1.rar 现在是要读取它,并显示于GridView控件上,方法参考<Excel上传并读取数据>http://www.cnblogs.com/insus/p/3814857.html 由于一些字段

iOS网络开发-打造自己的视频客户端

一.展示实现 效果      客户端:                                      服务器端:            二.创建表 1 create table CourseVideo 2 ( 3 VideoID int IDENTITY(1,1) NOT NULL, 4 CourseID int NOT NULL, 5 VideoName varchar(500) NULL, 6 VideoPath [varchar](100) NULL, 7 VideoImage

机房收费系统重构——Datatable转泛型

刚开始在机房重构中用的最多的是Datatable,之前没有开始的时候就听大家一直在说泛型,很好奇这个东西,也很想知道明明用Datatable就可以,为什么非要转成泛型?它到底有什么好处呢?于是,便开始了研究-- Datatable是一个临时保存数据的网格,是一个虚拟表.我们在使用Datatable时,通过D层直接将数据库中的数据选出来,返回到B层和U层,在返回的时候我们要是想显示到窗体,就需要将U层的文本框与这个表中的字段一一对应.如果不小心就会写错,然后数据显示就不对.这样对数据库的耦合性太大

vb.net环境下将DataTable转成泛型集合方法

背景 做机房收费系统的时候,遇到这样一个问题,将数据库表中的数据取出一行,将每个单元格中的内容填充到窗体 的文本框中.考虑到用DataReader获取结果的复杂性,我就用了泛型集合.可是这么一用却出现了如图所示的问 题. 问题一: 出现这种问题,是因为在DataTable转实体类型时表的字段类型和实体的字段类型不一致造成的. 这个也可以 这么说,中国人的孩子都随父姓,这是传统.但孩子随母姓,就有些不妥. 问题二: 数据库表中字段名和要转换的实体属性字段名不一致,导致转换后实体中depart为空值

C#如何根据DataTable生成泛型List或者动态类型list

背景:在项目中,sql语句检索返回DataTable,然后根据检索结果做进一步的操作,本篇文章即是介绍如何将DataTable快速生成泛型List返回. 假设存在如下学生类: 1 public class student 2 { 3 public int ID { get; set; } 4 public string StuName { get; set; } 5 public string CityCode { get; set; } 6 } 存在如下数据表Student: 1.泛型List

DataTable转任意类型对象List数组-----工具通用类(利用反射和泛型)

public class ConvertHelper<T> where T : new() { /// <summary> /// 利用反射和泛型 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static List<T> ConvertToList(DataTable dt) { //