方法 : LINQ を使用したデータの数、合計、または平均の算出 (Visual Basic)
更新 : 2007 年 11 月
統合言語クエリ (LINQ: Language-Integrated Query) を使用すると、データベース情報へのアクセスとクエリの実行を簡単に行うことができます。
SQL Server データベースに対するクエリを実行する新しいアプリケーションの作成方法を、次の例に示します。この例は、Aggregate 句と Group By 句を使用して、結果の数、合計、および平均を算出します。詳細については、「Aggregate 句 (Visual Basic)」および「Group By 句 (Visual Basic)」を参照してください。
このトピックに示す例では、Northwind サンプル データベースを使用します。開発用コンピュータに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。手順については、「サンプル データベースのダウンロード (LINQ to SQL)」を参照してください。
メモ : |
---|
お使いのマシンで、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 データベースへの接続を展開します。[Tables] フォルダを展開します。
O/R デザイナを閉じている場合は、前に追加した northwind.dbml ファイルをダブルクリックして再度開くことができます。
Customers テーブルをクリックし、デザイナの左ペインにドラッグします。Orders テーブルをクリックし、デザイナの左ペインにドラッグします。
デザイナで、プロジェクトの新しい Customer オブジェクトと Order オブジェクトが作成されます。デザイナがテーブル間の関係を自動的に検出し、関連オブジェクトの子プロパティを作成します。たとえば、IntelliSense では、Customer オブジェクトに、その顧客に関連するすべての受注についての Orders プロパティが含まれることが示されます。
変更を保存し、デザイナを閉じます。
プロジェクトを保存します。
データベースを照会するコードを追加し、結果を表示するには
ツールボックスから、DataGridView コントロールを、プロジェクトの既定の Windows フォームである Form1 にドラッグします。
Form1 をダブルクリックして、フォームの Load イベントのコードを追加します。
O/R デザイナにテーブルを追加すると、デザイナによってプロジェクトに DataContext オブジェクトが追加されます。このオブジェクトには、これらのテーブルにアクセスするために必要なコードで、個々のオブジェクトと各テーブルのコレクションにアクセスするためのコードが格納されます。プロジェクトの DataContext オブジェクトには、.dbml ファイルの名前に基づいて名前が付けられます。このプロジェクトの場合、DataContext オブジェクトの名前は northwindDataContext になります。
コード内に DataContext のインスタンスを作成し、O/R デザイナで指定したテーブルを照会できます。
DataContext のプロパティとして公開されるテーブルを照会し、その結果の数、合計、および平均を算出するには、次のコードを Load イベントに追加します。この例では、Aggregate 句を使用して単一の結果を照会し、Group By 句を使用してグループ化された結果の平均を示します。
Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers _ Where cust.City = "London" _ Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers _ Where cust.City = "London" _ Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & _ averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers _ Where cust.Country = "Venezuela" _ Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & _ venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers _ Group By cust.City _ Into Average(cust.Orders.Count) _ Order By Average DataGridView1.DataSource = averageCustomersByCity
F5 キーを押してプロジェクトを実行し、結果を確認します。
参照
処理手順
チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナ)