次の方法で共有


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

    次のコードを 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 デザイナー)

その他の技術情報

Visual Basic における LINQ

クエリ (Visual Basic)

LINQ to SQL [LINQ to SQL]