TableAdapterManager の概要

TableAdapterManager は、データを関連するデータ テーブルに保存する機能を提供するコンポーネントです。 TableAdapterManager では、データ テーブルを関連付ける外部キー リレーションシップを使用することにより、データベースでの外部キー制約 (参照整合性) に違反せずに、データセットからデータベースに挿入コマンド、更新コマンド、削除コマンドを送信する正しい順序が決定されます。

外部キー制約とは、関連レコードの挿入、更新、および削除を制御するデータベース内の一貫性規則のことです。 別のテーブルの子レコードが存在している間、その元となる親レコードが削除されないようにするのが外部キー制約です。

TableAdapterManager を使用して関連するデータ テーブルのデータを保存するプロセス全体は、階層更新と呼ばれます。

関連するデータ テーブルの変更されたデータを保存することは、1 つのテーブルのデータの保存より若干複雑です。 これは、関連する各テーブルの挿入コマンド、更新コマンド、削除コマンドを、データベースで定義された外部キー制約に違反しないように、特定の順序で実行する必要があるためです。 たとえば、新しい顧客と注文、および既存の顧客と注文の両方を管理できる注文入力アプリケーションがあるとします。 既存の顧客のレコードを削除する必要がある場合、まずその顧客の注文をすべて削除しておく必要があります。 また、新しい顧客のレコードを注文と共に追加する場合は、テーブルに適用される外部キー制約があるため、新しい顧客のレコードを挿入してから、その顧客の注文を挿入する必要があります。 これらの例が示すように、データの特定のサブセットを抽出し、正しい順序で更新 (挿入、更新、削除) を送信することにより、参照整合性を維持し、データベースの外部キー制約と競合しないようにする必要があります。

TableAdapterManager の作成

既定では、TableAdapterManager クラスは、プロジェクトで型指定されたデータセットを作成すると生成されます。 具体的には、これは、TableAdapterManager を作成するかどうかを決定する、データセットの Hierarchical Update プロパティの値です。 Hierarchical Update が True に設定されている場合、TableAdapterManager が作成されます。Hierarchical Update が False に設定されている場合、TableAdapterManager が含まれないデータセットが作成されます。 詳細については、「方法 : 階層更新を有効または無効にする」を参照してください。

注意

既定では、以前のバージョンの Visual Studio で作成されたプロジェクトに追加されたデータセットでは、Hierarchical Update プロパティが False に設定されています。これは、階層更新が無効になっており、TableAdapterManager が作成されないことを意味しています。既存のデータセットに TableAdapterManager を追加する方法の詳細については、「方法 : 既存の Visual Studio プロジェクトで階層更新を実装する」を参照してください。

TableAdapterManager のリファレンス

TableAdapterManager クラスは、.NET Framework の一部ではありません。 そのため、ドキュメントで調べることはできません。 これは、デザイン時にデータセット作成プロセスの一部として作成されます。

TableAdapterManager クラスのよく使用するメソッドとプロパティを次に示します。

メンバー

Description

UpdateAll メソッド

すべてのデータ テーブルのすべてのデータを保存します。

BackUpDataSetBeforeUpdate プロパティ

ブール値。 TableAdapterManager.UpdateAll メソッドを実行する前に、データセットのバックアップ コピーを作成するかどうかを決定します。

tableNameTableAdapter プロパティ

TableAdapter を表します。 生成される TableAdapterManager には、管理する各 TableAdapter のプロパティが含まれます。 たとえば、Customers テーブルと Orders テーブルが存在するデータセットは、CustomersTableAdapter プロパティと OrdersTableAdapter プロパティを含む TableAdapterManager によって生成されます。

UpdateOrder プロパティ

個々の挿入コマンド、更新コマンド、削除コマンドの実行順序を制御します。 TableAdapterManager.UpdateOrderOption 列挙型の値のいずれかに設定します。

既定では、UpdateOrder は InsertUpdateDelete に設定されます。 これは、データセットのすべてのテーブルに対して挿入が実行され、次にデータセットのすべてのテーブルに対して更新が実行され、最後にデータセットのすべてのテーブルに対して削除が実行されることを意味しています。 詳細については、「方法 : 階層更新の実行順序を設定する」を参照してください。

参照

処理手順

チュートリアル : 関連するデータ テーブルからのデータの保存 (階層更新)

チュートリアル : 単純なデータ アプリケーションの作成

概念

TableAdapter の概要

データの保存

その他の技術情報

階層更新