Share via


チュートリアル : TableAdapter DBDirect メソッドを使用してデータを保存する

 

公開日: 2016年4月

このチュートリアルでは、TableAdapter の DBDirect メソッドを使用してデータベースに対して直接 SQL ステートメントを実行する手順について詳しく説明します。 TableAdapter の DBDirect メソッドを使用すると、データベースの更新をきめ細かいレベルで制御できます。 これらのメソッドを使用すると、(UPDATE、INSERT、および DELETE ステートメントをすべて 1 回の呼び出しで実行するオーバーロードされた Update メソッドとは異なり、) 必要に応じてアプリケーションで InsertUpdate、および Delete メソッドを個別に呼び出すことによって、特定の SQL ステートメントおよびストアド プロシージャを実行できます。

このチュートリアルでは、次の作業を行う方法について説明します。

  • 新しい Windows アプリケーションを作成します。

  • データ ソース構成ウィザードを使用して、データセットを作成して構成します。

  • [データ ソース] ウィンドウから項目をドラッグしたときにフォーム上に作成されるコントロールを選択します。 詳細については、「[データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する」を参照してください。

  • [データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド フォームを作成します。

  • データベースに直接アクセスし、データベースに対して挿入、更新、および削除を直接実行するメソッドを追加します。

必須コンポーネント

このチュートリアルを完了するための要件は次のとおりです。

Windows アプリケーションの作成

最初に Windows アプリケーションを作成します。

新しい Windows プロジェクトを作成するには

  1. Visual Studio の [ファイル] メニューの [新しいプロジェクト] をクリックします。

  2. プロジェクトに TableAdapterDbDirectMethodsWalkthrough という名前を付けます。

  3. [Windows アプリケーション] をクリックし、[OK] をクリックします。 詳細については、「クライアント アプリケーション」を参照してください。

    TableAdapterDbDirectMethodsWalkthrough プロジェクトが作成されてソリューション エクスプローラーに追加されます。

データベースからのデータ ソースの作成

この手順では、データ ソース構成ウィザードを使用して、Northwind サンプル データベースの Region テーブルに基づいてデータ ソースを作成します。 接続を作成するには、Northwind サンプル データベースへのアクセス権を持っている必要があります。 Northwind サンプル データベースのセットアップの詳細については、「方法 : サンプル データベースをインストールする」を参照してください。

データ ソースを作成するには

  1. [データ] メニューの [データ ソースの表示] をクリックします。

  2. [データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。

  3. [データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。

  4. [データ接続の選択] ページで、次のいずれかの操作を行います。

    • Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。

      または

    • [新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。

  5. データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。

  6. [アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。

  7. [データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。

  8. Region テーブルを選択し、[完了] をクリックします。

    プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに Region テーブルが表示されます。

データを表示するためのコントロールのフォームへの追加

[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインド コントロールを作成します。

Windows フォームにデータ バインド コントロールを作成するには

個々の TableAdapter DbDirect メソッドを呼び出すボタンを追加するには

  1. ツールボックスから 3 つの Button コントロールを RegionDataGridView の下の Form1 にドラッグします。

  2. 各ボタンの [名前] および [テキスト] プロパティを設定します。

    名前 Text
    InsertButton 挿入
    UpdateButton 更新
    DeleteButton 削除

データベースに新しいレコードを挿入するコードを追加するには

  1. [InsertButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。

  2. 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
    

データベースのレコードを更新するコードを追加するには

  1. [UpdateButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。

  2. 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
    

データベースからレコードを削除するコードを追加するには

  1. [DeleteButton] をダブルクリックして、クリック イベントのイベント ハンドラーを作成し、コード エディターでフォームを開きます。

  2. 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 キーを押してアプリケーションを実行します。

  • [挿入] をクリックし、グリッドに新しいレコードが表示されることを確認します。

  • [更新] をクリックし、グリッドでレコードが更新されることを確認します。

  • [削除] をクリックし、グリッドからレコードが削除されることを確認します。

次の手順

アプリケーションの要件に応じて、データ バインド フォームの作成後に、追加の操作を実行できます。 このチュートリアルで行うことができる拡張には次のものがあります。

参照

TableAdapter の概要
方法 : TableAdapter で直接データベースにアクセスする
方法 : TableAdapter クエリを作成する
方法 : オブジェクトからデータベースにデータを保存する
Visual Studio でのデータへの Windows フォーム コントロールのバインド
Visual Studio でのデータへの接続
アプリケーションでデータを受け取る準備
アプリケーションへのデータのフェッチ
Visual Studio でのデータへのコントロールのバインド
アプリケーションでのデータ編集
データの検証
データの保存