国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 洪雅县| 松江区| 定陶县| 湟中县| 敖汉旗| 连云港市| 加查县| 台州市| 石泉县| 额济纳旗| 波密县| 普兰店市| 琼结县| 宝丰县| 淮北市| 华宁县| 凌源市| 天津市| 吉安市| 嘉义市| 巴彦县| 华坪县| 沙河市| 龙井市| 依安县| 德保县| 和静县| 吉木乃县| 无棣县| 海晏县| 屏山县| 邓州市| 安平县| 元江| 喀什市| 鹤庆县| 祁阳县| 辽宁省| 平阴县| 定安县| 福州市|