.NET Framework アプリケーションでオブジェクトからデータベースにデータを保存する
Note
データセットと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初期からのレガシ .NET Framework テクノロジです。 テクノロジが特に役立つのは、ユーザーがデータを変更し、変更をデータベースに戻して保持できるようにするアプリケーションです。 データセットは非常に優れたテクノロジであることが証明されていますが、新しい .NET アプリケーションでは Entity Framework Core を使用することをお勧めしています。 Entity Framework には、オブジェクト モデルとして表形式データを操作する、より自然な方法が用意されており、よりシンプルなプログラミング インターフェイスが備わっています。
オブジェクト内のデータをデータベースに保存するには、オブジェクトから TableAdapter のいずれかの DBDirect メソッド (TableAdapter.Insert
など) に値を渡します。 詳細については、TableAdapter に関するページを参照してください。
オブジェクトのコレクションのデータを保存するには、オブジェクトのコレクションをループ処理し (for-next ループなど)、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
を実行するアクセス許可が必要です。