チュートリアル : TableAdapter DBDirect メソッドを使用してデータを保存する
公開日: 2016年4月
このチュートリアルでは、TableAdapter の DBDirect メソッドを使用してデータベースに対して直接 SQL ステートメントを実行する手順について詳しく説明します。 TableAdapter の DBDirect メソッドを使用すると、データベースの更新をきめ細かいレベルで制御できます。 これらのメソッドを使用すると、(UPDATE、INSERT、および DELETE ステートメントをすべて 1 回の呼び出しで実行するオーバーロードされた Update
メソッドとは異なり、) 必要に応じてアプリケーションで Insert
、Update
、および Delete
メソッドを個別に呼び出すことによって、特定の SQL ステートメントおよびストアド プロシージャを実行できます。
このチュートリアルでは、次の作業を行う方法について説明します。
新しい Windows アプリケーションを作成します。
データ ソース構成ウィザードを使用して、データセットを作成して構成します。
[データ ソース] ウィンドウから項目をドラッグしたときにフォーム上に作成されるコントロールを選択します。 詳細については、「[データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。
[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド フォームを作成します。
データベースに直接アクセスし、データベースに対して挿入、更新、および削除を直接実行するメソッドを追加します。
必須コンポーネント
このチュートリアルを完了するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。 詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Windows アプリケーションの作成
最初に Windows アプリケーションを作成します。
新しい Windows プロジェクトを作成するには
Visual Studio の [ファイル] メニューの [新しいプロジェクト] をクリックします。
プロジェクトに TableAdapterDbDirectMethodsWalkthrough という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。 詳細については、「クライアント アプリケーション」を参照してください。
TableAdapterDbDirectMethodsWalkthrough プロジェクトが作成されてソリューション エクスプローラーに追加されます。
データベースからのデータ ソースの作成
この手順では、データ ソース構成ウィザードを使用して、Northwind サンプル データベースの Region
テーブルに基づいてデータ ソースを作成します。 接続を作成するには、Northwind サンプル データベースへのアクセス権を持っている必要があります。 Northwind サンプル データベースのセットアップの詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
データ ソースを作成するには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。
または
[新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
[アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。
[データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。
Region
テーブルを選択し、[完了] をクリックします。プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに
Region
テーブルが表示されます。
データを表示するためのコントロールのフォームへの追加
[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド コントロールを作成します。
Windows フォームにデータ バインド コントロールを作成するには
[データ ソース] ウィンドウからフォームにメインの [Region] ノードをドラッグします。
レコード間をナビゲートするための DataGridView コントロールとツール ストリップ (BindingNavigator) がフォームに表示されます。 NorthwindDataSet、RegionTableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
個々の TableAdapter DbDirect メソッドを呼び出すボタンを追加するには
ツールボックスから 3 つの Button コントロールを RegionDataGridView の下の Form1 にドラッグします。
各ボタンの [名前] および [テキスト] プロパティを設定します。
名前 Text InsertButton
挿入 UpdateButton
更新 DeleteButton
削除
データベースに新しいレコードを挿入するコードを追加するには
[InsertButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。
InsertButton_Click
イベント ハンドラーを次のコードで置き換えます。private void InsertButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; String newRegionDescription = "NorthEastern"; try { regionTableAdapter1.Insert(newRegionID, newRegionDescription); } catch (Exception ex) { MessageBox.Show("Insert Failed"); } RefreshDataset(); } private void RefreshDataset() { this.regionTableAdapter1.Fill(this.northwindDataSet1.Region); }
Private Sub InsertButton_Click() Handles InsertButton.Click Dim newRegionID As Integer = 5 Dim newRegionDescription As String = "NorthEastern" Try RegionTableAdapter1.Insert(newRegionID, newRegionDescription) Catch ex As Exception MessageBox.Show("Insert Failed") End Try RefreshDataset() End Sub Private Sub RefreshDataset() Me.RegionTableAdapter1.Fill(Me.NorthwindDataSet1._Region) End Sub
データベースのレコードを更新するコードを追加するには
[UpdateButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。
UpdateButton_Click
イベント ハンドラーを次のコードで置き換えます。private void UpdateButton_Click(object sender, EventArgs e) { Int32 newRegionID = 5; try { regionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern"); } catch (Exception ex) { MessageBox.Show("Update Failed"); } RefreshDataset(); }
Private Sub UpdateButton_Click() Handles UpdateButton.Click Dim newRegionID As Integer = 5 Try RegionTableAdapter1.Update(newRegionID, "Updated Region Description", 5, "NorthEastern") Catch ex As Exception MessageBox.Show("Update Failed") End Try RefreshDataset() End Sub
データベースからレコードを削除するコードを追加するには
[DeleteButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。
DeleteButton_Click
イベント ハンドラーを次のコードで置き換えます。private void DeleteButton_Click(object sender, EventArgs e) { try { regionTableAdapter1.Delete(5, "Updated Region Description"); } catch (Exception ex) { MessageBox.Show("Delete Failed"); } RefreshDataset(); }
Private Sub DeleteButton_Click() Handles DeleteButton.Click Try RegionTableAdapter1.Delete(5, "Updated Region Description") Catch ex As Exception MessageBox.Show("Delete Failed") End Try RefreshDataset() End Sub
アプリケーションの実行
アプリケーションを実行するには
F5 キーを押してアプリケーションを実行します。
[挿入] をクリックし、グリッドに新しいレコードが表示されることを確認します。
[更新] をクリックし、グリッドでレコードが更新されることを確認します。
[削除] をクリックし、グリッドからレコードが削除されることを確認します。
次の手順
アプリケーションの要件に応じて、データ バインド フォームの作成後に、追加の操作を実行できます。 このチュートリアルで行うことができる拡張には次のものがあります。
フォームに検索機能を追加します。 詳細については、「方法: パラメーター クエリを Windows フォーム アプリケーションに追加する」を参照してください。
[データ ソース] ウィンドウの [ウィザードで DataSet を構成] を選択して、データセットにテーブルを追加します。 関連するコードをフォームにドラッグすることによって、関連するデータを表示するコントロールを追加できます。 詳細については、「方法: 関連するデータを Windows フォーム アプリケーションに表示する」を参照してください。
参照
TableAdapter の概要
方法 : TableAdapter で直接データベースにアクセスする
方法 : TableAdapter クエリを作成する
方法 : オブジェクトからデータベースにデータを保存する
Visual Studio でのデータへの Windows フォーム コントロールのバインド
Visual Studio でのデータへの接続
アプリケーションでデータを受け取る準備
アプリケーションへのデータのフェッチ
Visual Studio でのデータへのコントロールのバインド
アプリケーションでのデータ編集
データの検証
データの保存