次の方法で共有


.NET Framework アプリケーションで TableAdapter を使用してデータを更新する

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

データセット内のデータが変更および検証されたら、TableAdapterUpdate メソッドを呼び出すことによって、更新されたデータをデータベースに送り返すことができます。 Update メソッドは、1 つのデータ テーブルを更新し、テーブル内の各データ行のRowStateに基づいて正しいコマンド (INSERTUPDATE、またはDELETE) を実行します。 データセットに関連するテーブルがある場合、Visual Studio は、更新の実行に使用する TableAdapterManager クラスを生成します。 TableAdapterManager クラスは、データベースで定義されている外部キー制約に基づいて、更新が正しい順序で行われるようにします。 データ バインド コントロールを使用すると、データ バインド アーキテクチャによって tableAdapterManager クラスのメンバー変数が作成されます。

データセットの内容を使用してデータ ソースを更新しようとすると、エラーが発生する可能性があります。 エラーを回避するには、アダプターの Update メソッドを呼び出すコードを try/catch ブロック内に配置することをお勧めします。

データ ソースを更新する正確な手順は、ビジネス ニーズによって異なりますが、次の手順が含まれます。

  1. try / catch ブロックでアダプターの Update メソッドを呼び出します。

  2. 例外がキャッチされた場合は、エラーの原因となったデータ行を見つけます。

  3. データ行の問題を調整し (可能な場合はプログラムで、または変更のために無効な行をユーザーに提示して)、もう一度更新を試してください (HasErrorsGetErrors)。

データベースにデータを保存する

TableAdapter の Update メソッドを呼び出します。 データベースに書き込む値を含むデータ テーブルの名前を渡します。

TableAdapter を使用してデータベースを更新するには

  • TableAdapter の Update メソッドを try/catch ブロックで囲みます。 次の例は、try/catch ブロック内からNorthwindDataSetCustomers テーブルの内容を更新する方法を示しています。

    try
    {
        this.Validate();
        this.customersBindingSource.EndEdit();
        this.customersTableAdapter.Update(this.northwindDataSet.Customers);
        MessageBox.Show("Update successful");
    }
    catch (System.Exception ex)
    {
        MessageBox.Show("Update failed");
    }