次の方法で共有


方法 : LINQ を使用したデータの数、合計、または平均の算出 (Visual Basic)

統合言語クエリ (LINQ: Language-Integrated Query) を使用すると、データベース情報へのアクセスとクエリの実行を容易に行うことができます。

SQL Server データベースに対するクエリを実行する新しいアプリケーションの作成方法の例を以下に示します。 この例は、Aggregate 句と Group By 句を使用して、結果の数、合計、および平均を算出します。 詳細については、「Aggregate 句 (Visual Basic)」および「Group By 句 (Visual Basic)」を参照してください。

このトピックの例では、Northwind サンプル データベースを使用します。 開発用コンピューターに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。 手順については、「サンプル データベースのダウンロード」を参照してください。

注意

次の手順で参照している 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 データベースへの接続を展開します。 [Tables] フォルダーを展開します。

    O/R デザイナーを閉じている場合は、前に追加した northwind.dbml ファイルをダブルクリックして再度開くことができます。

  2. Customers テーブルをクリックし、デザイナーの左ペインにドラッグします。 Orders テーブルをクリックし、デザイナーの左ペインにドラッグします。

    デザイナーで、プロジェクトの新しい Customer オブジェクトと Order オブジェクトが作成されます。 デザイナーがテーブル間の関係を自動的に検出し、関連オブジェクトの子プロパティを作成します。 たとえば、IntelliSense では、Customer オブジェクトに、その顧客に関連するすべての受注についての Orders プロパティが含まれることが示されます。

  3. 変更を保存し、デザイナーを閉じます。

  4. プロジェクトを保存します。

データベースを照会するコードを追加し、結果を表示するには

  1. ツールボックスから、DataGridView コントロールを、プロジェクトの既定の Windows フォームである Form1 にドラッグします。

  2. Form1 をダブルクリックして、フォームの Load イベントのコードを追加します。

  3. 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
    
  4. F5 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

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

関連項目

Aggregate 句 (Visual Basic)

Group By 句 (Visual Basic)

概念

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

その他の技術情報

Visual Basic における LINQ

クエリ (Visual Basic)

LINQ to SQL [LINQ to SQL]