国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

DataSet與DataTable基本用法

2019-11-17 02:20:48
字體:
供稿:網(wǎng)友

DataSet與DataTable基本用法

http://files.VEVb.com/files/monkeyZhong/DataSetExample.rar

在設(shè)計數(shù)據(jù)庫操作或者xml操作等表格數(shù)據(jù)時,我們難免要跟DataSet和DataTable打交道,我們這里就介紹下這幾個類的用法:

首先介紹DataTable,其實就是一個二維表格,沒那么懸乎,舉個構(gòu)造的例子:

            DataTable dt = new DataTable("Customers");            dt.Columns.Add("CustomerID", typeof(Int32));            dt.Columns.Add("CustomerName", typeof(String));            dt.Columns.Add("Descr

這就構(gòu)造了一個二行三列的二維表了。

其次就是DataSet:我們可以把它看做是DataTable的集合容器,我們可以往里面添加很多表。比如:

1             customerOrders = new DataSet();2             customerOrders.Tables.Add(customerTable);3             customerOrders.Tables.Add(orderTable);4             customerOrders.Tables.Add(orderDetailTable);5             customerOrders.Tables.Add(PRoductTable);
View Code

這里就添加了四個表。

當然,DataSet還有其他的內(nèi)容,這里我平時用得少但是很重要的地方就是DataRelation,這個我們可以想成表與表之間通過某列來建立一個聯(lián)系,這樣我們就可以通過某行的GetChildRows得到子列的行集合(滿足關(guān)系),或者通過GetParentRow得到父列的行。

 1            DataRelation customerOrdersRelation = new DataRelation("CustOrders", 2                 customerOrders.Tables["Customers"].Columns["CustomerID"], 3                 customerOrders.Tables["Orders"].Columns["CustomerID"]); 4             customerOrders.Relations.Add(customerOrdersRelation); 5             DataRelation orderDetailRelation = customerOrders.Relations.Add("OrderDetail", 6                 customerOrders.Tables["Orders"].Columns["OrderID"], 7                 customerOrders.Tables["OrderDetails"].Columns["OrderID"], false); 8             DataRelation orderProductRelation = customerOrders.Relations.Add("OrderProducts", 9                 customerOrders.Tables["Product"].Columns["ProductID"],10                 customerOrders.Tables["OrderDetails"].Columns["ProductID"]);11           12             DataRow[] rows = customerOrders.Tables["Customers"].Rows[0].GetChildRows(customerOrdersRelation);13             DataTable dt = orderTable.Clone();14             foreach (DataRow row in rows)15             {16                 dt.ImportRow(row);17 18             }19 20             StringBuilder sw = new StringBuilder();21             foreach (DataRow custRow in customerOrders.Tables["Customers"].Rows)22             {23                 sw.AppendLine("Customer ID:" + custRow["CustomerID"]);24                 foreach (DataRow orderRow in custRow.GetChildRows(customerOrdersRelation))25                 {26                     sw.AppendLine("    Order ID:" + orderRow["OrderID"]);27                     sw.AppendLine("/tOrder Date:" + orderRow["DateTime"]);28                     foreach (DataRow detailRow in orderRow.GetChildRows(orderDetailRelation))29                     {30                         sw.AppendLine("/tProduct" + detailRow.GetParentRow(orderProductRelation)["ProductName"]);31                     }32                 }33             }
View Code

子行可以有很多,但是父行只有一行。至于那些外鍵,主鍵,約束,以及更新表的時候的一些操作,因為涉及到數(shù)據(jù)庫的很多知識,這里就不做描述了,我們側(cè)重這兩個類的用法。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 濉溪县| 鱼台县| 宜昌市| 海原县| 申扎县| 孟津县| 民和| 防城港市| 鹿泉市| 南岸区| 靖宇县| 木兰县| 湘潭县| 伽师县| 镶黄旗| 康平县| 鲁甸县| 威信县| 河西区| 绥滨县| 岑溪市| 巧家县| 沂源县| 香格里拉县| 武清区| 永靖县| 如东县| 普格县| 云安县| 安新县| 阜阳市| 鄂托克前旗| 鸡泽县| 余庆县| 故城县| 靖州| 伽师县| 贡山| 华宁县| 茌平县| 名山县|