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

更新 : 2007 年 11 月

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

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

前提条件

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

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

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

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

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

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

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

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

データベースからデータ ソースを作成する

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

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

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

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

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

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

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

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

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

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

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

フォームにコントロールを追加してデータを表示する

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

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

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

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

  2. 各ボタンの [Name] と Text プロパティを設定します。

    Name

    Text

    InsertButton

    Insert

    UpdateButton

    Update

    DeleteButton

    Delete

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

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

  2. InsertButton_Click イベント ハンドラを次のコードで置き換えます。

    Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        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
    
    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);
    }
    

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

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

  2. UpdateButton_Click イベント ハンドラを次のコードで置き換えます。

    Private Sub UpdateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        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
    
    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();
    }
    

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

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

  2. DeleteButton_Click イベント ハンドラを次のコードで置き換えます。

    Private Sub DeleteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles DeleteButton.Click
    
        Try
            RegionTableAdapter1.Delete(5, "Updated Region Description")
    
        Catch ex As Exception
            MessageBox.Show("Delete Failed")
        End Try
    
        RefreshDataset()
    End Sub
    
    private void DeleteButton_Click(object sender, EventArgs e)
    {
        try
        {
            regionTableAdapter1.Delete(5, "Updated Region Description");
        }
        catch (Exception ex)
        {
            MessageBox.Show("Delete Failed");
        }
        RefreshDataset();
    }
    

アプリケーションの実行

アプリケーションを実行するには

  • F5 キーを押してアプリケーションを実行します。

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

  • [更新] ボタンをクリックし、グリッドのレコードが更新されていることを確認します。

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

次の手順

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

参照

処理手順

方法 : TableAdapter で直接データベースにアクセスする

方法 : TableAdapter クエリを作成する

方法 : オブジェクトからデータベースにデータを保存する

概念

TableAdapter の概要

データの表示の概要

その他の技術情報

Visual Studio でのデータへの接続

アプリケーションでデータを受け取る準備

アプリケーションへのデータのフェッチ

Windows アプリケーションのフォームでのデータの表示

アプリケーションでのデータ編集

データの検証

データの保存