注
DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。
オブジェクトから TableAdapter のいずれかの DBDirect メソッド (たとえば、 TableAdapter.Insert) に値を渡すことで、オブジェクト内のデータをデータベースに保存できます。 詳細については、「 TableAdapter」を参照してください。
オブジェクトのコレクションからデータを保存するには、オブジェクトのコレクション (たとえば、次のループ) をループ処理し、TableAdapter の DBDirect メソッドのいずれかを使用して各オブジェクトの値をデータベースに送信します。
既定では、 DBDirect メソッドは、データベースに対して直接実行できる TableAdapter に作成されます。 これらのメソッドは直接呼び出すことができます。データベースに更新を送信するために、変更を調整するために DataSet または DataTable オブジェクトを必要としません。
注
TableAdapter を構成する場合、メイン クエリは、 DBDirect メソッドを作成するのに十分な情報を提供する必要があります。 たとえば、TableAdapter が、主キー列が定義されていないテーブルのデータに対してクエリを実行するように構成されている場合、 DBDirect メソッドは生成されません。
| TableAdapter DBDirect メソッド | 説明 |
|---|---|
TableAdapter.Insert |
データベースに新しいレコードを追加し、個々の列値をメソッド パラメーターとして渡すことができます。 |
TableAdapter.Update |
データベース内の既存のレコードを更新します。
Update メソッドは、元の列と新しい列の値をメソッド パラメーターとして受け取ります。 元の値を使用して元のレコードを検索し、新しい値を使用してそのレコードを更新します。TableAdapter.Update メソッドは、DataSet、DataTable、DataRow、またはDataRowの配列をメソッド パラメーターとして取得して、データセットの変更をデータベースに戻すためにも使用されます。 |
TableAdapter.Delete |
メソッド パラメーターとして渡された元の列値に基づいて、データベースから既存のレコードを削除します。 |
オブジェクトからデータベースに新しいレコードを保存するには
TableAdapter.Insertメソッドに値を渡してレコードを作成します。次の例では、
currentCustomerオブジェクトの値をTableAdapter.Insertメソッドに渡して、Customersテーブルに新しい顧客レコードを作成します。private void AddNewCustomers(Customer currentCustomer) { customersTableAdapter.Insert( currentCustomer.CustomerID, currentCustomer.CompanyName, currentCustomer.ContactName, currentCustomer.ContactTitle, currentCustomer.Address, currentCustomer.City, currentCustomer.Region, currentCustomer.PostalCode, currentCustomer.Country, currentCustomer.Phone, currentCustomer.Fax); }
オブジェクトからデータベースに既存のレコードを更新するには
TableAdapter.Updateメソッドを呼び出し、新しい値を渡してレコードを更新し、元の値を渡してレコードを見つけることで、レコードを変更します。注
オブジェクトを
Updateメソッドに渡すには、元の値を維持する必要があります。 この例では、origプレフィックスを持つプロパティを使用して、元の値を格納します。次の例では、
Customerオブジェクトの新しい値と元の値をTableAdapter.Updateメソッドに渡して、Customersテーブル内の既存のレコードを更新します。private void UpdateCustomer(Customer cust) { customersTableAdapter.Update( cust.CustomerID, cust.CompanyName, cust.ContactName, cust.ContactTitle, cust.Address, cust.City, cust.Region, cust.PostalCode, cust.Country, cust.Phone, cust.Fax, cust.origCustomerID, cust.origCompanyName, cust.origContactName, cust.origContactTitle, cust.origAddress, cust.origCity, cust.origRegion, cust.origPostalCode, cust.origCountry, cust.origPhone, cust.origFax); }
データベースから既存のレコードを削除するには
TableAdapter.Deleteメソッドを呼び出し、元の値を渡してレコードを見つけることで、レコードを削除します。注
オブジェクトを
Deleteメソッドに渡すには、元の値を維持する必要があります。 この例では、origプレフィックスを持つプロパティを使用して、元の値を格納します。次の例では、
Customerオブジェクトの元の値をTableAdapter.Deleteメソッドに渡して、Customersテーブルからレコードを削除します。
.NET のセキュリティ
データベース内のテーブルに対して選択した INSERT、 UPDATE、または DELETE を実行する権限が必要です。