在 .NET Framework 應用程式中填入資料集時關閉條件約束

注意

資料集和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的資料。 它們特別適用於可讓使用者修改資料並將變更保存回資料庫的應用程式。 雖然已證明資料集是非常成功的技術,但建議新的 .NET 應用程式使用 Entity Framework Core。 Entity Framework 提供更自然的方式,將表格式資料作為物件模型使用,而且具有更簡單的程式設計介面。

如果資料集包含條件約束 (例如外部索引鍵條件約束),它們可能會引發與針對資料集執行的作業順序相關的錯誤。 例如,載入相關父記錄之前載入子記錄可能會違反條件約束並導致錯誤。 一旦您載入子記錄,條件約束就會檢查相關的父記錄並引發錯誤。

如果沒有允許暫時暫停條件約束的機制,則每次您嘗試將記錄載入到子表格中時都會引發錯誤。 暫停資料集中所有條件約束的另一個方法是使用 BeginEditEndEdit 屬性。

注意

當條件約束關閉時,將不會引發驗證事件 (例如,ColumnChangingRowChanging)。

以程式設計方式暫停更新條件約束

  • 下列範例示範如何在資料集中暫時關閉條件約束檢查:

    dataSet1.EnforceConstraints = false;
    // Perform some operations on the dataset
    dataSet1.EnforceConstraints = true;
    

使用「DataSet 設計工具」暫停更新條件約束

  1. 在 [DataSet 設計工具] 中開啟資料集。 如需詳細資訊,請參閱逐步解說:在「DataSet 設計工具」中建立資料集

  2. 在 [屬性] 視窗中,將 EnforceConstraints 屬性設定為 false