(1)构造函数

DataTable()   不带参数初始化DataTable 类的新实例。

DataTable(string tableName)  用指定的表名初始化DataTable 类的新实例。

DataTable(string tableName, string tableNamespace) 用指定的表名和命名空间初始化

DataTable 类的新实例。

(2) 常用属性

CaseSensitive    指示表中的字符串比较是否区分大小写。

ChildRelations   获取此DataTable 的子关系的集合。

Columns             获取属于该表的列的集合。

Constraints        获取由该表维护的约束的集合。

DataSet               获取此表所属的DataSet。

DefaultView       获取可能包括筛选视图或游标位置的表的自定义视图。

HasErrors          获取一个值,该值指示该表所属的DataSet 的任何表的任何行中是否有错误。

MinimumCapacity  获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。

Rows                  获取属于该表的行的集合。

TableName       获取或设置DataTable 的名称。

(3)常用方法

AcceptChanges()   提交自上次调用AcceptChanges() 以来对该表进行的所有更改。

BeginInit()         开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。

Clear()               清除所有数据的DataTable。

Clone()              克隆DataTable 的结构,包括所有DataTable 架构和约束。

EndInit()            结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。

ImportRow(DataRow row)    将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。

Merge(DataTable table)  将指定的DataTable 与当前的DataTable 合并。

NewRow()         创建与该表具有相同架构的新DataRow。

(1)Create a DataTable          DataTable dt = new DataTable("Table_AX");

(2)Add columns for DataTable

dt.Columns.Add("column0", System.Type.GetType("System.String"));

DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));

dt.Columns.Add(dc); 
(3)Add rows for DataTable

DataRow dr = dt.NewRow();    //Initialize the row

dr["column0"] = "AX";

dr["column1"] = true;

dt.Rows.Add(dr);

(4)Select row

DataRow[] drs = dt.Select("column1 is null"); //Search the second row 如果没有赋值,则用is null来select

DataRow[] drss = dt.Select("column0 = 'AX'");

(5)Copy DataTable include data          DataTable dtNew = dt.Copy(); 
(6)Copy DataTable only scheme          DataTable dtOnlyScheme = dt.Clone(); 
(7)Operate one row

//Metod1          DataRow drOperate = dt.Rows[0];          drOperate["column0"] = "AXzhz";          drOperate["column1"] = false;          //Method 2          drOperate[0] = "AXzhz";          drOperate[1] = false;          //Method 3          dt.Rows[0]["column0"] = "AXzhz";          dt.Rows[0]["column1"] = false;          //Method 4          dt.Rows[0][0] = "AXzhz";          dt.Rows[0][1] = false; 
(8)Evaluate another DataTable's row to current Datatable          dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray); 
(9)Convert to string          System.IO.StringWriter sw = new System.IO.StringWriter();          System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw);          dt.WriteXml(xw);          string s = sw.ToString();
(10)Filter DataTable          dt.DefaultView.RowFilter = "column1 <> true";          dt.DefaultView.RowFilter = "column1 = true";
(11)Sort row           dt.DefaultView.Sort = "ID ,Name ASC";           dt=dt.DefaultView.ToTable();
(12)Bind DataTable            //绑定的其实是DefaultView           gvTestDataTable.DataSource = dt;           gvTestDataTable.DataBind();
(13)judge the DataTable’s Column name is a string           //判断一个字符串是否为DataTable的列名          dtInfo.Columns.Contains("AX");
(14)DataTable convert to XML and XML convert to DataTable           protected void Page_Load(object sender, EventArgs e)           {              DataTable dt_AX = new DataTable();               //dt_AX.Columns.Add("Sex", typeof(System.Boolean));              //DataRow dr = dt_AX.NewRow();              //dr["Sex"] = true;              //dt_AX.Rows.Add(dr);               string xml=ConvertBetweenDataTableAndXML_AX(dt_AX);              DataTable dt = ConvertBetweenDataTableAndXML_AX(xml);          }           public string ConvertBetweenDataTableAndXML_AX(DataTable dtNeedCoveret)         {              System.IO.TextWriter tw = new System.IO.StringWriter();              //if TableName is empty, WriteXml() will throw Exception.

dtNeedCoveret.TableName=dtNeedCoveret.TableName.Length==0?"Table_AX":dtNeedCoveret.TableName;              dtNeedCoveret.WriteXml(tw);              dtNeedCoveret.WriteXmlSchema(tw);              return tw.ToString();         }           public DataTable ConvertBetweenDataTableAndXML_AX(string xml)         {              System.IO.TextReader trDataTable = new System.IO.StringReader(xml.Substring(0, xml.IndexOf("<?xml")));              System.IO.TextReader trSchema = new System.IO.StringReader(xml.Substring(xml.IndexOf("<?xml")));              DataTable dtReturn = new DataTable();              dtReturn.ReadXmlSchema(trSchema);              dtReturn.ReadXml(trDataTable);              return dtReturn;         }

C# 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. 微信小程序统一服务消息下发接口 公众号和小程序消息都可以在一个接口推送了

    昨天晚上,2018年9月11日,微信官方又更新了一大波的小程序功能.重点我们来谈谈这个功能,微信叫做统一服务消息下发接口. 这个是官方的文档  统一服务消息 · 小程序https://develope ...

  2. Master of Sequence

    Master of Sequence 时间限制: 10 Sec  内存限制: 128 MB 题目描述 There are two sequences a1,a2,...,an , b1,b2,..., ...

  3. mysql 排序字段与索引有关系吗?

    mysql 排序字段与索引有关系吗?答案与否需要你explain一下你的sql脚本 另外记住:date_add()方法会影响Index_modify_time索引(即:时间字段索引)  一般遇到这样的 ...

  4. Codeforces Round #398 (Div. 2) A-E

    分数史上新低 开场5分钟过了A题,想着这次赌一把手速,先去切C吧 看完C题觉得这应该是道水题,码了十分钟提交,WA 想着这明明是道水题,估计少考虑了情况,添了几行再交,WA 不可能啊,这题都A不掉,和 ...

  5. python c++ Visual Studio相关 Unable to find vcvarsall.bat问题

    使用Cython编译包的时候报错: Unable to find vcvarsall.bat 说明:https://jingyan.baidu.com/article/adc815138162e8f7 ...

  6. MySQL 手动主从同步不锁表

    有时候MySQL主从同步不一致比较严重的时候,需要手动同步. 然而网上看大很多需要锁表的同步的方法基本如下 1.先对主库锁表 FLUSH TABLES WITH READ LOCK; 2.备份数据 m ...

  7. hdu 4970 树状数组 “改段求段”

    题意:塔防.给1--n,给出m个塔,每个塔有攻击力,给出k个怪兽的位子和血量,问有几只可以到达n点. 今天刚刚复习了树状数组,就碰到这个题,区间更新.区间求和类型.第三类树状数组可以斩. 注意一下大数 ...

  8. Chrome 75 将原生支持图片懒加载

    4 月 6 日,Google 的 Chrome & Web 平台工程经理 Addy Osmani 在个人博客发文,介绍到 <img> 和 <iframe> 的 load ...

  9. 关联分析(Apriori算法)

    两个概念: 频繁项集:常出现的物品集合 关联分析:找到诸如:尿布-->啤酒的关联,反过来则是另一条 两个控制参数: 项集的支持度(support):一个项集出现的次数在所有样本中出现的比例 可信 ...

  10. angular6安装

    中文 https://www.angular.cn/ 二.下载 1.安装 node.js https://nodejs.org/en/ 2.删除老angular-cli npm uninstall - ...