加载表结构并保持成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--调整可空类型的转化错误相关推荐

  1. 裕-C#过滤DataTable中的空数据和重复数据

    C#过滤DataTable中的空数据和重复数据 string sql = "select name,age from user"; DataTable data = DB.Exec ...

  2. python空类型用什么表示_python中怎么表示空值

    首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,'oblong'是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是 ...

  3. python中表示空类型的是_python中怎么表示空值

    首先了解python对象的概念 python中,万物皆对象,所有的操作都是针对对象的. 那什么是对象?5是一个int对象,'oblong'是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是 ...

  4. DBNull和可空类型

    private static int GetAge()         {             DataTable dt = SqlHelper.ExecuteDataTable("se ...

  5. 了解下C# 可空类型(Nullable)

    C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值. C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int ...

  6. [C#基础知识系列]专题十:全面解析可空类型

    引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...

  7. C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...

    本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...

  8. python空类型-在Python中__________表示空类型。

    [填空题]任意长度的 Python 列表.元组和字符串中最后一个元素的下标为 ________ . [单选题]下面代码的输出结果是 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬ ...

  9. Kotlin——初级篇(六):空类型、空安全、非空断言、类型转换等特性总结

    在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...

  10. 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )

    文章目录 一.独立主函数入口 二.可空类型判定 三.默认值设定 四.完整代码示例 五. 相关资源 一.独立主函数入口 在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 ...

最新文章

  1. Notification和KVO有什么不同
  2. 可微偏导数一定存在_【导数压轴题】“偏导数”与含参不等式
  3. Hexo博客主题之hexo-theme-matery的安装命令整理
  4. 领域驱动第四章-读书笔记
  5. Swift--字符串和字符(一)
  6. 数据库(4)——候选码和主键
  7. unity添加对象实例_在Unity中,如何通过值复制一个GameObject,以便在实例化之前修改它?...
  8. 计算机机房的维护管理论文,学校计算机机房维护与管理论文
  9. 查看 linux系统版本,内核,CPU,MEM,位数的相关命令(实验)
  10. Raki的统计学习方法笔记0x2章:感知机
  11. C++ 结构体内存对齐
  12. 创业计划书学习笔记二——创业计划书的目录结构与执行概览部分的写作方法
  13. OverFeat论文理解
  14. linux audit 源码分析,audit初探
  15. nandflash oob解析
  16. iMazing2.16最新苹果手机备份同步工具
  17. android自定义UI模板图文详解
  18. JSON数据 与 JSON数据的使用
  19. POSTER: A PU Learning based System for Potential Malicious URL Detection
  20. 一个悄然崛起的国产软件,低调又强大!

热门文章

  1. 华为手机解锁码计算工具_手机计算器全线阵亡?小编实测苹果、华为、三星……...
  2. 提高抗打击能力_孩子遇挫折就放弃咋办?菲尔普斯法则:培养抗挫力,试试挫折演习...
  3. 一个纸水杯的测试用例设计。
  4. python3,使用sys.setdefaultencoding('utf-8'),编译时报错
  5. 关于docker的日常操作(二)
  6. Python MQTT 最简单例程搭建
  7. 个人Web自动化测试学习点总结
  8. 以后给孩子起名字不用发愁了,先存着
  9. 【JavaEE】第一章线程和多线程
  10. dj打碟怎么学_关于DJ入门以及手把手教你如何打碟(转)