源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C# DataTable的详细用法分享

  • 时间:2021-08-30 18:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C# DataTable的详细用法分享
[b]一、DataTable简介[/b]    [b](1)构造函数 [/b]DataTable()   不带参数初始化DataTable 类的新实例。 DataTable(string tableName)  用指定的表名初始化DataTable 类的新实例。 DataTable(string tableName, string tableNamespace) 用指定的表名和命名空间初始化DataTable 类的新实例。 [b](2) 常用属性[/b] CaseSensitive    指示表中的字符串比较是否区分大小写。 ChildRelations   获取此DataTable 的子关系的集合。 Columns             获取属于该表的列的集合。 Constraints        获取由该表维护的约束的集合。 DataSet               获取此表所属的DataSet。DataSet相关信息,可见我以前的一篇文章《数据访问(2)-DataSet》 DefaultView       获取可能包括筛选视图或游标位置的表的自定义视图。 HasErrors          获取一个值,该值指示该表所属的DataSet 的任何表的任何行中是否有错误。 MinimumCapacity  获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。 Rows                  获取属于该表的行的集合。 TableName       获取或设置DataTable 的名称。 [b](3)常用方法 [/b]AcceptChanges()   提交自上次调用AcceptChanges() 以来对该表进行的所有更改。 BeginInit()         开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。 Clear()               清除所有数据的DataTable。 Clone()              克隆DataTable 的结构,包括所有DataTable 架构和约束。 EndInit()            结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。 ImportRow(DataRow row)    将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。 Merge(DataTable table)  将指定的DataTable 与当前的DataTable 合并。 NewRow()         创建与该表具有相同架构的新DataRow。 [b]二、DataTable使用技巧[/b] (1)Create a DataTable
[u]复制代码[/u] 代码如下:
DataTable dt = new DataTable("Table_AX");
(2)Add columns for DataTable
[u]复制代码[/u] 代码如下:
//Method 1 dt.Columns.Add("column0", System.Type.GetType("System.String")); //Method 2 DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean")); dt.Columns.Add(dc);
(3)Add rows for DataTable
[u]复制代码[/u] 代码如下:
//Initialize the row DataRow dr = dt.NewRow(); dr["column0"] = "AX"; dr["column1"] = true; dt.Rows.Add(dr); //Doesn't initialize the row DataRow dr1 = dt.NewRow(); dt.Rows.Add(dr1); 
(4)Select row
[u]复制代码[/u] 代码如下:
//Search the second row 如果没有赋值,则用is null来select DataRow[] drs = dt.Select("column1 is null"); DataRow[] drss = dt.Select("column0 = 'AX'");
(5)Copy DataTable include data
[u]复制代码[/u] 代码如下:
DataTable dtNew = dt.Copy();
(6)Copy DataTable only scheme
[u]复制代码[/u] 代码如下:
DataTable dtOnlyScheme = dt.Clone();
(7)Operate one row
[u]复制代码[/u] 代码如下:
//对dt的操作 //Method 1 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
[u]复制代码[/u] 代码如下:
dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);
(9)Convert to string
[u]复制代码[/u] 代码如下:
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
[u]复制代码[/u] 代码如下:
dt.DefaultView.RowFilter = "column1 <> true"; dt.DefaultView.RowFilter = "column1 = true";
(11)Sort row
[u]复制代码[/u] 代码如下:
dt.DefaultView.Sort = "ID ,Name ASC"; dt=dt.DefaultView.ToTable();
(12)Bind DataTable
[u]复制代码[/u] 代码如下:
//绑定的其实是DefaultView gvTestDataTable.DataSource = dt; gvTestDataTable.DataBind();
(13)judge the DataTable's Column name is a string
[u]复制代码[/u] 代码如下:
//判断一个字符串是否为DataTable的列名 dtInfo.Columns.Contains("AX");
(14)DataTable convert to XML and XML convert to DataTable
[u]复制代码[/u] 代码如下:
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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部