知识大全 c# datatable用法总结

Posted

篇首语:多见者博,多闻者智,拒谏者塞,专己者孤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 c# datatable用法总结相关的知识,希望对你有一定的参考价值。

  在项目中经常用到DataTable 如果DataTable使用得当 不仅能使程序简洁实用 而且能够提高性能 达到事半功倍的效果 现对DataTable的使用技巧进行一下总结

  一 DataTable简介

  ( )构造函数

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

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

  DataTable(string tableName string tableNamespace) 用指定的表名和命名空间初始化DataTable 类的新实例

  ( ) 常用属性

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

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

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

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

  DataSet               获取此表所属的DataSet DataSet相关信息 可见我以前的一篇文章《数据访问( )-DataSet》

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

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

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

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

  TableName       获取或设置DataTable 的名称

  ( )常用方法

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

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

  Clear()               清除所有数据的DataTable

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

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

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

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

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

  二 DataTable使用技巧

  ( )Create a DataTable

  DataTable dt = new DataTable( Table_AX );

  ( )Add columns for DataTable

  //Method

  dt Columns Add( column System Type GetType( System String ));

  //Method

  DataColumn dc = new DataColumn( column System Type GetType( System Boolean ));

  dt Columns Add(dc);

  ( )Add rows for DataTable

  //Initialize the row

  DataRow dr = dt NewRow();

  dr[ column ] = AX ;

  dr[ column ] = true;

  dt Rows Add(dr);

  //Doesn t initialize the row

  DataRow dr = dt NewRow();

  dt Rows Add(dr );

  ( )Select row

  //Search the second row 如果没有赋值 则用is null来select

  DataRow[] drs = dt Select( column is null );

  DataRow[] drss = dt Select( column = AX );

  ( )Copy DataTable include data

  DataTable dtNew = dt Copy();

  ( )Copy DataTable only scheme

  DataTable dtOnlyScheme = dt Clone();

  ( )Operate one row

  //对dt的操作

  //Method

  DataRow drOperate = dt Rows[ ];

  drOperate[ column ] = AXzhz ;

  drOperate[ column ] = false;

  //Method

  drOperate[ ] = AXzhz ;

  drOperate[ ] = false;

  //Method

  dt Rows[ ][ column ] = AXzhz ;

  dt Rows[ ][ column ] = false;

  //Method

  dt Rows[ ][ ] = AXzhz ;

  dt Rows[ ][ ] = false;

  ( )Evaluate another DataTable s row to current Datatable

  dtOnlyScheme Rows Add(dt Rows[ ] ItemArray);

  ( )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();

  ( )Filter DataTable

  dt DefaultView RowFilter = column <> true ;

  dt DefaultView RowFilter = column = true ;

  ( )Sort row

  dt DefaultView Sort = ID Name ASC ;

  dt=dt DefaultView ToTable();

  ( )Bind DataTable

  //绑定的其实是DefaultView

  gvTestDataTable DataSource = dt;

  gvTestDataTable DataBind();

  ( )judge the DataTable s Column name is a string

  //判断一个字符串是否为DataTable的列名

  dtInfo Columns Contains( AX );

  ( )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=ConvertBeeenDataTableAndXML_AX(dt_AX);

  DataTable dt = ConvertBeeenDataTableAndXML_AX(xml);

  

  public string ConvertBeeenDataTableAndXML_AX(DataTable dtNeedCoveret)

  

  System IO TextWriter = new System IO StringWriter();

  //if TableName is empty WriteXml() will throw Exception

  dtNeedCoveret TableName=dtNeedCoveret TableName Length== ? Table_AX :dtNeedCoveret TableName;

  dtNeedCoveret WriteXml();

  dtNeedCoveret WriteXmlSchema();

  return ToString();

  

  public DataTable ConvertBeeenDataTableAndXML_AX(string xml)

  

  System IO TextReader trDataTable = new System IO StringReader(xml Substring( 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;

cha138/Article/program/net/201311/12556

相关参考

知识大全 C#反射方法学习总结

C#反射方法学习总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文介绍今天把C#反射方

知识大全 C#线程同步的方法总结

C#线程同步的方法总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们在编程的时候有时会使用

知识大全 C#泛型编程基础知识总结

C#泛型编程基础知识总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在项目中通过对项目不断更

知识大全 C# webservice调用方法总结

C#webservice调用方法总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一WebSe

知识大全 C#中的常用正则表达式总结

C#中的常用正则表达式总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是我发了不少时间整理

知识大全 C++、Java与C#的命名规范总结

C++、Java与C#的命名规范总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要由于在开

知识大全 C# 中 List 用法

C#中List用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  List类是ArrayList

知识大全 C# continue 用法

C#continue用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  continue语句将控

知识大全 C#中DES加密用法的使用方法

C#中DES加密用法的使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在C#中直接引用加

知识大全 C#中HashTable简介和使用用法

C#中HashTable简介和使用用法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一简介