a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

總結c# datatable用法

2024-09-07 17:05:40
字體:
來源:轉載
供稿:網友

datatable在我們的項目中會經常使用的,如果正確使用datatable,不僅可以使程序簡單實用,而且可以提高性能,事半功倍,接下來錯新技術頻道小編可以一起來看一下總結c# datatable用法吧!

一、DataTable簡介
(1)構造函數
DataTable() 不帶參數初始化DataTable 類的新實例。
DataTable(string tableName) 用指定的表名初始化DataTable 類的新實例。
DataTable(string tableName, string tableNamespace) 用指定的表名和命名空間初始化DataTable 類的新實例。
(2) 常用屬性
CaseSensitive 指示表中的字符串比較是否區分大小寫。
ChildRelations 獲取此DataTable 的子關系的集合。
Columns 獲取屬于該表的列的集合。
Constraints 獲取由該表維護的約束的集合。
DataSet 獲取此表所屬的DataSet。DataSet相關信息,可見我以前的一篇文章《數據訪問(2)-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。

二、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# datatable用法都有了一定的了解誒,我們在實際操作中也一定能學會一些,這樣我們可以更好地提升自己,如果你想了解更多,那就關注錯新技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产免费无遮挡 | 日韩在线免费视频 | 一级h片 | 国产日韩欧美在线 | 欧美在线观看视频 | 欧美午夜视频在线观看 | 91丁香| 大陆一级毛片免费看 | 国产综合精品一区二区三区 | 九九热精品在线观看 | 国产免费av在线 | 亚洲欧洲日韩在线 | 欧美一级黄 | 国产日日操 | 精品欧美一区二区三区精品久久 | 亚洲一级免费视频 | 中字一区 | 女人毛片 | 欧美日韩国语 | 亚洲天堂av网 | 白浆在线播放 | 亚洲最黄网站 | 亚洲色图第一区 | 中文字幕精品一区二区三区精品 | 日韩天堂 | 亚洲精品一区二区三区蜜桃久 | 欧美一区二区三区在线视频 | 淫语对白 | www久久久久久 | 涩涩视频网站在线观看 | 日韩高清一区二区 | 麻豆精品| 欧美日韩一区二区三区 | 91在线免费看| 日韩视频精品在线 | 国产无区一区二区三麻豆 | 91.成人天堂一区 | 婷婷天堂 | 免费看爱爱视频 | 在线色网站| zzzwww在线观看免 |