c# datatable用法总结

 我来答
户如乐9318
2022-11-22 · TA获得超过6589个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:132万
展开全部

  在项目中经常用到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;

lishixinzhi/Article/program/net/201311/12556

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式