Share via


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

更新 : 2007 年 11 月

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

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

このトピックに示す例では、Northwind サンプル データベースを使用します。開発用コンピュータに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。手順については、「サンプル データベースのダウンロード (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 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

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

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

概念

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

その他の技術情報

LINQ (Visual Basic)

クエリ (Visual Basic)

LINQ to SQL