方法 : LINQ を使用してストアド プロシージャを呼び出す (Visual Basic)
統合言語クエリ (LINQ: Language-Integrated Query) を使用すると、データベース情報に簡単にアクセスできます。この情報には、ストアド プロシージャなどのデータベース オブジェクトも含まれます。
次の例は、SQL Server データベース内のストアド プロシージャを呼び出すアプリケーションの作成方法を示します。 このサンプルでは、データベース内の 2 つの異なるストアド プロシージャを呼び出す方法を示します。 それぞれのプロシージャが、クエリの結果を返します。 片方のプロシージャでは入力パラメーターを使用し、他方のプロシージャではパラメーターは使用しません。
このトピックの例では、Northwind サンプル データベースを使用します。 開発用コンピューターに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。 手順については、「サンプル データベースのダウンロード」を参照してください。
注意
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio での開発設定のカスタマイズ」を参照してください。
データベースへの接続を作成するには
Visual Studio で、[表示] メニューの [サーバー エクスプローラー] または [データベース エクスプローラー] をクリックして、サーバー エクスプローラーまたはデータベース エクスプローラーを開きます。
サーバー エクスプローラーまたはデータベース エクスプローラーで、[データ接続] を右クリックし、[接続の追加] をクリックします。
Northwind サンプル データベースへの有効な接続を指定します。
LINQ to SQL ファイルを含むプロジェクトを追加するには
Visual Studio で、[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。 プロジェクトの種類として、Visual Basic の [Windows フォーム アプリケーション] をクリックします。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。 [LINQ to SQL クラス] 項目テンプレートをクリックします。
ファイルに northwind.dbml という名前を付けます。 [追加] をクリックします。 オブジェクト リレーショナル デザイナー (O/R デザイナー) で northwind.dbml ファイルが開かれます。
ストアド プロシージャを O/R デザイナーに追加するには
サーバー エクスプローラーまたはデータベース エクスプローラーで、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``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()
F5 キーを押してプロジェクトを実行し、結果を確認します。
参照
処理手順
方法 : 更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)
チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)