将ListT转化成 DataTable--调整可空类型的转化错误
加载表结构并保持成XML
string cmdText = @"select * from kb_lable_temp where 1=2";using (SqlConnection conn = new SqlConnection(DBCtx.ConnStr)){DataTable dt = new DataTable();SqlCommand cmd = new SqlCommand(cmdText,conn);conn.Open();using (var dr = cmd.ExecuteReader(CommandBehavior.SchemaOnly)){dt.Load(dr);dt.WriteXmlSchema("C:\\xxx.xml");}}DataTable dt3 = new DataTable();dt3.ReadXmlSchema("C:\\xxx.xml");
List<T>到DataTable
using System.Data; using System.Collections.Generic; using System.Reflection; using System; using System.Collections; namespace F.Studio.Util {public static class DataTableExtensions{/// <summary> /// 转化一个DataTable /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <returns></returns> public static DataTable ToDataTable<T>(this IEnumerable<T> list,params string[] tableName){//创建属性的集合 List<PropertyInfo> pList = new List<PropertyInfo>();//获得反射的入口 Type type = typeof(T);string tname = "Table1";if (tableName.Length >= 1){tname = tableName[0];}DataTable dt = new DataTable(tname);//把所有的public属性加入到集合 并添加DataTable的列 Array.ForEach<PropertyInfo>(type.GetProperties(), p =>{pList.Add(p); var theType=p.PropertyType;//处理可空类型if (theType.IsGenericType && theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))){dt.Columns.Add(p.Name,Nullable.GetUnderlyingType(theType));}else{dt.Columns.Add(p.Name, theType);}});foreach (var item in list){//创建一个DataRow实例 DataRow row = dt.NewRow();//给row 赋值 pList.ForEach(p =>{var v=p.GetValue(item, null);row[p.Name] = v==null ? DBNull.Value : v;});//加入到DataTable dt.Rows.Add(row);}return dt;} } }
转载于:https://www.cnblogs.com/zxbzl/p/4617783.html
将ListT转化成 DataTable--调整可空类型的转化错误相关推荐
- 裕-C#过滤DataTable中的空数据和重复数据
C#过滤DataTable中的空数据和重复数据 string sql = "select name,age from user"; DataTable data = DB.Exec ...
- python空类型用什么表示_python中怎么表示空值
首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,'oblong'是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是 ...
- python中表示空类型的是_python中怎么表示空值
首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,'oblong'是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是 ...
- DBNull和可空类型
private static int GetAge() { DataTable dt = SqlHelper.ExecuteDataTable("se ...
- 了解下C# 可空类型(Nullable)
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int ...
- [C#基础知识系列]专题十:全面解析可空类型
引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...
- C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...
本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...
- python空类型-在Python中__________表示空类型。
[填空题]任意长度的 Python 列表.元组和字符串中最后一个元素的下标为 ________ . [单选题]下面代码的输出结果是 ...
- Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结
在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...
- 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
文章目录 一.独立主函数入口 二.可空类型判定 三.默认值设定 四.完整代码示例 五. 相关资源 一.独立主函数入口 在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 ...
最新文章
- Notification和KVO有什么不同
- 可微偏导数一定存在_【导数压轴题】“偏导数”与含参不等式
- Hexo博客主题之hexo-theme-matery的安装命令整理
- 领域驱动第四章-读书笔记
- Swift--字符串和字符(一)
- 数据库(4)——候选码和主键
- unity添加对象实例_在Unity中,如何通过值复制一个GameObject,以便在实例化之前修改它?...
- 计算机机房的维护管理论文,学校计算机机房维护与管理论文
- 查看 linux系统版本,内核,CPU,MEM,位数的相关命令(实验)
- Raki的统计学习方法笔记0x2章:感知机
- C++ 结构体内存对齐
- 创业计划书学习笔记二——创业计划书的目录结构与执行概览部分的写作方法
- OverFeat论文理解
- linux audit 源码分析,audit初探
- nandflash oob解析
- iMazing2.16最新苹果手机备份同步工具
- android自定义UI模板图文详解
- JSON数据 与 JSON数据的使用
- POSTER: A PU Learning based System for Potential Malicious URL Detection
- 一个悄然崛起的国产软件,低调又强大!
热门文章
- 华为手机解锁码计算工具_手机计算器全线阵亡?小编实测苹果、华为、三星……...
- 提高抗打击能力_孩子遇挫折就放弃咋办?菲尔普斯法则:培养抗挫力,试试挫折演习...
- 一个纸水杯的测试用例设计。
- python3,使用sys.setdefaultencoding('utf-8'),编译时报错
- 关于docker的日常操作(二)
- Python MQTT 最简单例程搭建
- 个人Web自动化测试学习点总结
- 以后给孩子起名字不用发愁了,先存着
- 【JavaEE】第一章线程和多线程
- dj打碟怎么学_关于DJ入门以及手把手教你如何打碟(转)