亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C# DataTable的詳細用法分享

 更新時間:2013年11月01日 15:58:56   作者:  
在項目中經常用到DataTable,如果DataTable使用得當,不僅能使程序簡潔實用,而且能夠提高性能,達到事半功倍的效果,現(xiàn)對DataTable的使用技巧進行一下總結

一、DataTable簡介   

(1)構造函數(shù)
DataTable()   不帶參數(shù)初始化DataTable 類的新實例。
DataTable(string tableName)  用指定的表名初始化DataTable 類的新實例。
DataTable(string tableName, string tableNamespace) 用指定的表名和命名空間初始化DataTable 類的新實例。
(2) 常用屬性
CaseSensitive    指示表中的字符串比較是否區(qū)分大小寫。
ChildRelations   獲取此DataTable 的子關系的集合。
Columns             獲取屬于該表的列的集合。
Constraints        獲取由該表維護的約束的集合。
DataSet               獲取此表所屬的DataSet。DataSet相關信息,可見我以前的一篇文章《數(shù)據(jù)訪問(2)-DataSet》
DefaultView       獲取可能包括篩選視圖或游標位置的表的自定義視圖。
HasErrors          獲取一個值,該值指示該表所屬的DataSet 的任何表的任何行中是否有錯誤。
MinimumCapacity  獲取或設置該表最初的起始大小。該表中行的最初起始大小。默認值為 50。
Rows                  獲取屬于該表的行的集合。
TableName       獲取或設置DataTable 的名稱。

(3)常用方法
AcceptChanges()   提交自上次調用AcceptChanges() 以來對該表進行的所有更改。
BeginInit()         開始初始化在窗體上使用或由另一個組件使用的DataTable。初始化發(fā)生在運行時。

Clear()               清除所有數(shù)據(jù)的DataTable。
Clone()              克隆DataTable 的結構,包括所有DataTable 架構和約束。
EndInit()            結束在窗體上使用或由另一個組件使用的DataTable 的初始化。初始化發(fā)生在運行時。
ImportRow(DataRow row)    將DataRow 復制到DataTable 中,保留任何屬性設置以及初始值和當前值。
Merge(DataTable table)  將指定的DataTable 與當前的DataTable 合并。
NewRow()         創(chuàng)建與該表具有相同架構的新DataRow。

二、DataTable使用技巧

(1)Create a DataTable

復制代碼 代碼如下:

DataTable dt = new DataTable("Table_AX");

(2)Add columns for DataTable
復制代碼 代碼如下:

//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
復制代碼 代碼如下:

//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
復制代碼 代碼如下:

//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
復制代碼 代碼如下:

DataTable dtNew = dt.Copy();

(6)Copy DataTable only scheme
復制代碼 代碼如下:

DataTable dtOnlyScheme = dt.Clone();

(7)Operate one row
復制代碼 代碼如下:

//對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
復制代碼 代碼如下:

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#11新特性預覽及使用介紹

    C#11新特性預覽及使用介紹

    這篇文章主要為大家介紹了C#11新特性預覽及使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • C#8.0中的索引與范圍功能介紹

    C#8.0中的索引與范圍功能介紹

    這篇文章介紹了C#8.0中的索引與范圍功能,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • Unity實現(xiàn)引導頁效果

    Unity實現(xiàn)引導頁效果

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)引導頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#調用c++方法介紹,window api

    c#調用c++方法介紹,window api

    c#在調用c++方法或者window api時不能象調用c#本身寫的dll類庫那樣直接通過引用dll就可以調用相應的方法, 而是要把要引用的dll放到bin中,現(xiàn)通過[DllImport("um_web_client.dll")]引用
    2013-10-10
  • C#獲取任務欄顯示進程的方法

    C#獲取任務欄顯示進程的方法

    這篇文章主要介紹了C#獲取任務欄顯示進程的方法,涉及C#針對進程操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#實現(xiàn)搶紅包算法的示例代碼

    C#實現(xiàn)搶紅包算法的示例代碼

    很多商家都會使用紅包進行促銷,那么你知道紅包算法是怎么實現(xiàn)的嗎,本文主要介紹了C#實現(xiàn)搶紅包算法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 輕松學習C#的屬性

    輕松學習C#的屬性

    輕松學習C#的屬性,對C#的屬性感興趣的朋友可以參考本篇文章,幫助大家更靈活的運用C#的屬性
    2015-11-11
  • C# MeasureString測量字符串函數(shù)的使用方法

    C# MeasureString測量字符串函數(shù)的使用方法

    這篇文章主要介紹了C# MeasureString測量字符串函數(shù)的使用方法,需要的朋友可以參考下
    2014-10-10
  • 巧用Dictionary實現(xiàn)日志數(shù)據(jù)批量插入

    巧用Dictionary實現(xiàn)日志數(shù)據(jù)批量插入

    這篇文章主要介紹了巧用Dictionary實現(xiàn)日志數(shù)據(jù)批量插入,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • C#中數(shù)組、ArrayList和List三者的區(qū)別詳解

    C#中數(shù)組、ArrayList和List三者的區(qū)別詳解

    這篇文章主要介紹了C#中數(shù)組、ArrayList和List三者的區(qū)別詳解,對于三者之間的區(qū)別想要了解的可以進來了解一下。
    2016-12-12

最新評論