次の方法で共有


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

Note

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

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

注意

データセットの内容でデータソースを更新しようとすると、エラーが発生することがあります。 エラーを回避するには、アダプターの Update メソッドを呼び出すコードを try/catch ブロック内に配置することが推奨されます。

データ ソースを更新するための正確なプロシージャは、ビジネス ニーズによって異なる可能性がありますが、次の手順が含まれます。

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

  2. 例外が検出された場合は、エラーを引き起こしたデータ行を探します。

  3. データ行の問題を調整し (可能な場合はプログラムによって、またはユーザーに無効な行を提示して修正を求めることによって)、再度更新を試みます (HasErrorsGetErrors)。

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

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

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

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

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