次の方法で共有


方法 : LINQ を使用したクエリ結果内の最小値と最大値の検索 (Visual Basic)

統合言語クエリ (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 の設定」を参照してください。

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

  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 デザイナーで指定したテーブルを照会できます。

    次のコードを Load イベントに追加します。 このコードは、データ コンテキストのプロパティとして公開されるテーブルを照会し、結果の最小値と最大値を求めます。 この例では、Aggregate 句を使用して単一の結果を照会し、Group By 句を使用してグループ化された結果の平均を示します。

    Dim db As New northwindDataContext
    
    Dim minimumOrders = Aggregate cust In db.Customers
                        Where cust.City = "London"
                        Into Min(cust.Orders.Count)
    
    MsgBox("Minimum Orders from a London Customer: " & minimumOrders)
    
    Dim maximumOrdersByCountry = From cust In db.Customers
                                 Group By cust.Country
                                   Into MaxOrders = Max(cust.Orders.Count)
    
    DataGridView1.DataSource = maximumOrdersByCountry
    
  4. F5 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

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

概念

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

その他の技術情報

LINQ (Visual Basic)

クエリ (Visual Basic)

LINQ to SQL