次の方法で共有


.NET Framework アプリケーションでのデータセットの入力中に制約を無効にする

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。

データセットに制約 (外部キー制約など) が含まれている場合、データセットに対して実行される操作の順序に関連するエラーが発生する可能性があります。 たとえば、関連する親レコードを読み込む前に子レコードを読み込むと、制約に違反し、エラーが発生する可能性があります。 子レコードを読み込むとすぐに、制約によって関連する親レコードがチェックされ、エラーが発生します。

一時的な制約の中断を許可するメカニズムがない場合は、子テーブルにレコードを読み込もうとするたびにエラーが発生します。 データセット内のすべての制約を中断するもう 1 つの方法は、 BeginEditプロパティと EndEdit プロパティです。

制約がオフになっている場合、検証イベント ( ColumnChangingRowChangingなど) は発生しません。

プログラムで更新制約を中断するには

  • 次の例は、データセットの制約チェックを一時的に無効にする方法を示しています。

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

データセット デザイナーを使用して更新制約を中断するには

  1. データセット デザイナーでデータセットを開きます。 詳細については、「 チュートリアル: データセット デザイナーでのデータセットの作成」を参照してください。

  2. プロパティ ウィンドウで、EnforceConstraints プロパティを falseに設定します。