次の方法で共有


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

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

次の例は、SQL Server データベースでストアド プロシージャを呼び出すアプリケーションを作成する方法を示しています。 このサンプルでは、データベース内の 2 つの異なるストアド プロシージャを呼び出す方法を示します。 各プロシージャは、クエリの結果を返します。 一方のプロシージャは入力パラメーターを受け取り、もう 1 つのプロシージャはパラメーターを受け取りません。

この記事の例では、Northwind サンプル データベースを使用します。 データベースを取得するには、「サンプル データベースのダウンロード 参照してください。

手記

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

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

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

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

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

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

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

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

  3. ファイルに northwind.dbml名前を付けます。 「を追加をクリックします。」 northwind.dbml ファイルのオブジェクト リレーショナル デザイナー (O/R デザイナー) が開きます。

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

  1. Server Explorer/Database Explorerで、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 メソッドを呼び出して、クエリをすぐに実行しなければならない場合があります。

    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 押してプロジェクトを実行し、結果を表示します。

関連項目