注
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
を実行する権限が必要です。