茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729327 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_615.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

Dot Net? : [轉貼]輕鬆玩轉Typed DataSet

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]輕鬆玩轉Typed DataSet, Part IV
輕鬆玩轉 Typed DataSet, Part IV

Written by: Rickie Lee

Dec. 11, 2004

本文繼續前面的 Typed DataSet 系列文章(輕鬆玩轉 Typed DataSet, Part 1-3 ),這裡闡述 Typed DataSet 相關文件及其作用和 Typed DataSet 在多層企業級系統中的應用等等。

1. Typed DataSet 相關文件及其作用

按照《
輕鬆玩轉 Typed DataSet, Part I
》中所提及的 使用 Visual Studio .NET XSD 架構文件創建有類型的 DataSet 一個典型的 Typed DataSet 包含如下 3 個文件,通過點擊右邊 Solution Explorer 上的 Show all files 可以看到:

1 XSD

XSD 文件存放定義 typed DataSet Schema XML 內容,可以通過 Annotation
來定製 typed DataSet ,更詳細信息請參考《 輕鬆玩轉 Typed DataSet, Part II 》。

2 Class file (如 CS

Class 文件創建 typed DataSet ,一般由 VS.Net xsd.exe 命令行工具自動生成,包括繼承 DataSet Typed DataSet Class 信息。該 class 文件實際上包括一系列繼承並擴展
DataSet, DataRow EventArgs classes ,因為上述繼承關係, Typed DataSet 仍然保留有 untyped DataSet 的所有特性,並沒有丟失任何特性。

如在引用 Typed DataSet DataTable 對象時,你既可以使用 Tables 集合對象,也可以直接引用對應的屬性 Property ,代碼如下所示:

AnnotationTypedDataset.Orders

AnnotationTypedDataset.Tables[「Orders」]


3 XSX

XSX XML Schema Extended )文件由 XML Schema Designer 自動生成,包含 Designer 界面上布局或可視化信息。

2. Typed DataSet 在多層企業級系統中的應用

當在多層的企業級應用系統中採用 Typed DataSet 時,通常要求 Typed DataSet 在全部或多數 tiers 中可以使用。因此,一般情況下將 Typed DataSet 及其相關文件存放最低的層次,這樣其他引用該層的項目和 assemblies 就可以引用 Typed DataSet
對象了。

Typed DataSet 的用法示例:

(1) 定位 Typed DataSet 中的 OrderDetailsRow 數據行

OrdersDataSet.OrderDetailsRow oRow;

oRow = oDs.OrderDetails.FindByOrderIDProductID(

nOrderID_OrderDetail, nProductID_Original);

(2) 檢測是否列 Column 中包含 null

if(!oDs.Orders[0].IsOrderDateNull())

{


oDs.Orders[0].SetOrderDateNull();

}

(3) 循環 Orders 所有數據行及其關聯的 Order Details 記錄

foreach(OrdersDataSet.OrdersRow oOrderRow in oDs.Orders)

{

Debug.WriteLine("OrderID = " + oOrderRow.OrderID);

foreach(OrdersDataSet.OrderDetailsRow oOrderDetailRow in

oOrderRow.GetOrderDetailsRows())

{


Debug.WriteLine(" — " + oOrderDetailRow.ProductName);

}

}

需要注意的是:如果後台的 Database structure 發生變化,則需要同步 Typed DataSet Schema 信息。在這樣情況下,即使採用 Untyped DataSet ,你也需要改變一些 Client 端代碼。但使用 Typed DataSet 的好處是,編譯器能夠標識出用戶代碼中大部分需要修改的地方,因為編譯器能夠對 Typed DataSet 在編譯期間進行類型安全檢查,而 untyped DataSet 則只能在 runtime 期間發現錯誤並拋出異常。


References:

1. Rickie, 輕鬆玩轉 Typed DataSet, Part I

2. Rickie, 輕鬆玩轉 Typed DataSet, Part II

3. Rickie, 輕鬆玩轉 Typed DataSet, Part III

4. John Papa, Efficient Coding With Strongly Typed DataSets,
http://msdn.microsoft.com/msdnmag/issues/04/12/DataPoints/default.aspx

前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|