HOW TO:設定執行階層式更新時的順序
當您將資料集中修改過的資料儲存至資料庫時 (已啟用階層式更新),可以控制 TableAdapterManager 用來傳送個別「插入」、「更新」及「刪除」的順序,這些是儲存資料時必須使用到的動作。階層式更新的預設執行順序為「插入」、「更新」和「刪除」。TableAdapterManager 提供 UpdateOrder 屬性,可以設定為先執行「更新」再執行「插入」,然後執行「刪除」。
重點是您必須了解,TableAdapterManager 預設會先對資料集中所有資料表執行「插入」,然後對資料集中所有資料表執行「更新」,再對資料集中所有資料表執行「刪除」。
將更新的順序更改為先執行「更新」,有助於您變更現有資料錄的主索引鍵值。先執行「更新」會依預期修改現有資料錄。先執行「插入」會建立一筆新的記錄,因為資料庫中還沒有新的主索引鍵。
程序
若要設定階層式更新的執行順序
在 [設計] 檢視中,開啟內含正在執行更新之 TableAdapterManager 的表單。
按一下元件匣中的 TableAdapterManager。
將 [屬性] 視窗中的 [UpdateOrder] 屬性,設定為應用程式所需的順序。
若要以程式設計方式設定階層式更新的執行順序
下列程式碼會設定 TableAdapterManager,以執行所有「更新」、所有「插入」,最後是所有「刪除」(以專案的有效名稱取代 yourDataSetTableAdapters)。
Me.TableAdapterManager.UpdateOrder = _ yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.UpdateInsertDelete
this.tableAdapterManager.UpdateOrder = yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.UpdateInsertDelete;
下列程式碼會設定 TableAdapterManager,以執行所有「插入」、所有「更新」,最後是所有「刪除」。這是預設的 TableAdapterManager 行為。
Me.TableAdapterManager.UpdateOrder = _ yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete
this.tableAdapterManager.UpdateOrder = yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;