次の方法で共有


方法 : LINQ を使用してストアド プロシージャを呼び出す (Visual Basic)

統合言語クエリ (LINQ: Language-Integrated Query) を使用すると、データベース情報に簡単にアクセスできます。この情報には、ストアド プロシージャなどのデータベース オブジェクトも含まれます。

次の例は、SQL Server データベース内のストアド プロシージャを呼び出すアプリケーションの作成方法を示します。 このサンプルでは、データベース内の 2 つの異なるストアド プロシージャを呼び出す方法を示します。 それぞれのプロシージャが、クエリの結果を返します。 片方のプロシージャでは入力パラメーターを使用し、他方のプロシージャではパラメーターは使用しません。

このトピックの例では、Northwind サンプル データベースを使用します。 開発用コンピューターに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。 手順については、「サンプル データベースのダウンロード」を参照してください。

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio での開発設定のカスタマイズ」を参照してください。

データベースへの接続を作成するには

  1. Visual Studio で、[表示] メニューの [サーバー エクスプローラー] または [データベース エクスプローラー] をクリックして、サーバー エクスプローラーまたはデータベース エクスプローラーを開きます。

  2. サーバー エクスプローラーまたはデータベース エクスプローラーで、[データ接続] を右クリックし、[接続の追加] をクリックします。

  3. Northwind サンプル データベースへの有効な接続を指定します。

LINQ to SQL ファイルを含むプロジェクトを追加するには

  1. Visual Studio で、[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。 プロジェクトの種類として、Visual Basic の [Windows フォーム アプリケーション] をクリックします。

  2. [プロジェクト] メニューの [新しい項目の追加] をクリックします。 [LINQ to SQL クラス] 項目テンプレートをクリックします。

  3. ファイルに northwind.dbml という名前を付けます。 [追加] をクリックします。 オブジェクト リレーショナル デザイナー (O/R デザイナー) で northwind.dbml ファイルが開かれます。

ストアド プロシージャを O/R デザイナーに追加するには

  1. サーバー エクスプローラーまたはデータベース エクスプローラーで、Northwind データベースへの接続を展開します。 [ストアド プロシージャ] フォルダーを展開します。

    O/R デザイナーを閉じている場合は、前に追加した northwind.dbml ファイルをダブルクリックして再度開くことができます。

  2. Sales by Year ストアド プロシージャをクリックし、デザイナーの右ペインにドラッグします。 Ten Most Expensive Products ストアド プロシージャをクリックし、デザイナーの右ペインにドラッグします。

  3. 変更を保存し、デザイナーを閉じます。

  4. プロジェクトを保存します。

ストアド プロシージャの結果を表示するコードを追加するには

  1. ツールボックスから、DataGridView コントロールを、プロジェクトの既定の Windows フォームである Form1 にドラッグします。

  2. Form1 をダブルクリックし、フォームの Load イベントにコードを追加します。

  3. O/R デザイナーにストアド プロシージャを追加すると、デザイナーによってプロジェクト用の DataContext オブジェクトが追加されます。 このオブジェクトには、これらのプロシージャにアクセスするために必要なコードが格納されます。 プロジェクトの DataContext オブジェクトには、.dbml ファイルの名前に基づいて名前が付けられます。 このプロジェクトの場合、DataContext オブジェクトの名前は northwindDataContext になります。

    コード内に DataContext のインスタンスを作成し、O/R デザイナーで指定したストアド プロシージャのメソッドを呼び出すことができます。 DataGridView オブジェクトをバインドするには、ストアド プロシージャの結果に対して ToList``1 メソッドを呼び出すことで、クエリを直ちに実行する必要があります。

    データ コンテキストのメソッドとして公開されたいずれかのストアド プロシージャを呼び出すには、次のコードを Load イベントに追加します。

    Dim db As New northwindDataContext
    
    ' Display the results of the Sales_by_Year stored procedure.
    DataGridView1.DataSource = 
        db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList()
    
    
    ...
    
    
    ' Display the results of the Ten_Most_Expensive_Products 
    ' stored procedure.
    
    DataGridView1.DataSource = 
        db.Ten_Most_Expensive_Products.ToList()
    
  4. F5 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

方法 : 更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)

チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)

概念

DataContext メソッド (O/R デザイナー)

その他の技術情報

Visual Basic における LINQ

クエリ (Visual Basic)

LINQ to SQL [LINQ to SQL]