TableAdapterManager 概觀
TableAdapterManager 是提供功能將資料儲存在相關資料表中的元件。 TableAdapterManager 會使用外部索引鍵關聯性 (用於建立資料表間的關聯性),判斷從資料集傳送「插入」、「更新」及「刪除」至資料庫的正確順序,而不會違反資料庫的外部索引鍵條件約束 (參考完整性)。
「外部索引鍵條件約束」 (Foreign-key Constraint) 是資料庫中的一致性規則,負責控制「插入」、「更新」和「刪除」關聯資料錄的行為。 當關聯的子資料錄仍存在另一個資料表時,外部索引鍵條件約束不會允許刪除父資料錄。
使用 TableAdapterManager 將資料儲存在關聯資料表的整個程序,稱為階層式更新。
儲存關聯資料表中修改過的資料,比儲存單一資料表中的資料更為複雜。 這是因為對每一個關聯資料表執行 [插入]、[更新] 和 [刪除] 命令時,必須按照特定順序執行,以避免違反資料庫中所定義的外部索引鍵條件約束。 例如,若使用的是管理新舊客戶與訂單的訂單輸入應用程式。 如果您必須刪除一筆舊客戶資料錄,必須先刪除該客戶的所有訂單資料錄。 因為資料表存在外部索引鍵條件約束,所以,如果您要加入新客戶資料錄 (該客戶有訂單),必須先插入新客戶資料錄才能插入該客戶的訂單。 如這些範例所示,您必須擷取資料的特定子集,然後按照正確的順序傳送更新 (插入、更新和刪除),以維持參考完整性,以及避免與資料庫中的外部索引鍵條件約束發生衝突。
建立 TableAdapterManager
根據預設,當您在專案中建立具型別資料集時,會產生 TableAdapterManager 類別。 更精確的說,是由資料集的 Hierarchical Update 屬性中的值,判斷是否建立 TableAdapterManager。 如果 Hierarchical Update 設定為 True,就會建立 TableAdapterManager,如果 Hierarchical Update 設定為 False,就會建立一個不含 TableAdapterManager 的資料集。 如需詳細資訊,請參閱 HOW TO:啟用和停用階層式更新。
注意事項 |
---|
根據預設,加入以舊版 Visual Studio 所建立專案中的資料集,其 Hierarchical Update 屬性設定為 False。 這表示停用階層式更新,且未建立 TableAdapterManager。 如需將 TableAdapterManager 加入至現有資料集的詳細資訊,請參閱 HOW TO:在現有的 Visual Studio 專案中實作階層式更新。 |
TableAdapterManager 參考
TableAdapterManager 類別並不屬於 .NET Framework 的一部分。 因此您在文件中無法查詢。 這是在設計階段時建立的,是資料集建立程序的一部分。
以下是 TableAdapterManager 類別的常用方法和屬性:
成員 |
描述 |
---|---|
UpdateAll 方法 |
儲存所有資料表中所有的資料。 |
BackUpDataSetBeforeUpdate 屬性 |
布林值。 判斷在執行 TableAdapterManager.UpdateAll 方法前,是否要建立資料集的備份複本。 |
tableNameTableAdapter 屬性 |
代表 TableAdapter。 產生的 TableAdapterManager 對其所管理的每一個 TableAdapter 都包含一個屬性。 例如,與具有 Customers 和 Orders 資料表的資料集一起產生的 TableAdapterManager 便含有 CustomersTableAdapter 和 OrdersTableAdapter 屬性。 |
UpdateOrder 屬性 |
控制個別 [插入]、[更新] 和 [刪除] 命令的執行順序。 將這個設定為 TableAdapterManager.UpdateOrderOption 列舉型別中的其中一個值。 根據預設,UpdateOrder 設定為 InsertUpdateDelete。 也就是說,對資料集中所有資料表執行 [插入],然後再對資料集中所有資料表執行 [更新],然後再對資料集中所有資料表執行 [刪除]。 如需詳細資訊,請參閱 HOW TO:設定執行階層式更新時的順序。 |