次の方法で共有


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

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

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

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

[!メモ]

お使いのマシンで、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<TSource> メソッドを呼び出すことで、クエリを直ちに実行する必要があります。

    データ コンテキストのメソッドとして公開されたいずれかのストアド プロシージャを呼び出すには、次のコードを 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 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

How to: Assign Stored Procedures to Perform Updates, Inserts, and Deletes (O/R Designer)

Walkthrough: Creating LINQ to SQL Classes (O/R Designer)

概念

DataContext Methods (O/R Designer)

その他の技術情報

Visual Basic における LINQ

クエリ (Visual Basic)

LINQ to SQL