方法: LINQ を使用してストアド プロシージャを呼び出す (Visual Basic)
Language-Integrated クエリ (LINQ) を使用すると、ストアド プロシージャなどのデータベース オブジェクトを含むデータベース情報に簡単にアクセスできます。
次の例は、SQL Server データベースでストアド プロシージャを呼び出すアプリケーションを作成する方法を示しています。 このサンプルでは、データベース内の 2 つの異なるストアド プロシージャを呼び出す方法を示します。 各プロシージャは、クエリの結果を返します。 一方のプロシージャは入力パラメーターを受け取り、もう 1 つのプロシージャはパラメーターを受け取りません。
この記事の例では、Northwind サンプル データベースを使用します。 データベースを取得するには、「サンプル データベースのダウンロード 参照してください。
手記
次の手順では、一部の Visual Studio ユーザー インターフェイス要素の名前や場所がコンピューターに異なる場合があります。 これらの要素は、使用している Visual Studio エディションと使用する設定によって決まります。 詳細については、「IDEのカスタマイズ」を参照してください。
データベースへの接続を作成するには
Visual Studio で、[表示] メニューの [サーバー エクスプローラー] /[データベース エクスプローラー]クリックして、Server Explorer/Database Explorer を開きます。
[サーバー エクスプローラー/][データベース エクスプローラー] で [データ接続] を右クリックし、[接続の追加] をクリックします。
Northwind サンプル データベースへの有効な接続を指定します。
LINQ to SQL ファイルを含むプロジェクトを追加するには
Visual Studio で、[ファイル] メニューから [新規] をポイントし、[プロジェクト] をクリックします。 プロジェクトの種類として Visual Basic Windows フォーム アプリケーション を選択します。
[プロジェクト] メニューの [新しい項目の追加] クリックします。 LINQ to SQL クラス の項目テンプレートを選択します。
ファイルに
northwind.dbml
名前を付けます。 「を追加をクリックします。」 northwind.dbml ファイルのオブジェクト リレーショナル デザイナー (O/R デザイナー) が開きます。
O/R デザイナーにストアド プロシージャを追加するには
Server Explorer/Database Explorerで、Northwind データベースへの接続を展開します。 ストアド プロシージャ フォルダーを展開します。
O/R デザイナーを閉じた場合は、先ほど追加した northwind.dbml ファイルをダブルクリックして再度開くことができます。
Sales by Year ストアド プロシージャをクリックし、デザイナーの右ペインにドラッグします。 Ten Most Expensive Products ストアド プロシージャをクリックして、デザイナーの右ペインにドラッグします。
変更内容を保存し、デザイナーを閉じます。
プロジェクトを保存します。
ストアド プロシージャの結果を表示するコードを追加するには
ツールボックスから、DataGridView コントロールをプロジェクトの既定の Windows フォーム Form1 にドラッグします。
Form1 をダブルクリックして、
Load
イベントにコードを追加します。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()
F5 押してプロジェクトを実行し、結果を表示します。
関連項目
.NET