次の方法で共有


方法 : LINQ を使用してコレクションを並べ替える (Visual Basic)

更新 : 2007 年 11 月

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

次の例では、新しいアプリケーションを作成して、SQL Server データベースに対するクエリを実行し、Order By 句によってクエリ結果を複数のフィールドに基づいて並べ替える方法を示します。各フィールドの並べ替え順序は、昇順にすることも降順にすることもできます。詳細については、「Order By 句 (Visual Basic)」を参照してください。

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

Bb882684.alert_note(ja-jp,VS.90).gifメモ :

お使いのマシンで、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 Classes] 項目テンプレートをクリックします。

  3. ファイルに「northwind.dbml」という名前を付けます。[追加] をクリックします。northwind.dbml ファイルがオブジェクト リレーショナル デザイナ (O/R デザイナ) で開かれます。

照会するテーブルを O/R デザイナに追加するには

  1. サーバー エクスプローラまたはデータベース エクスプローラで、Northwind データベースへの接続を展開します。[Tables] フォルダを展開します。

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

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

    デザイナによって、新しい Customer オブジェクトと Order オブジェクトがプロジェクトに作成されます。デザイナがテーブル間の関係を自動的に検出し、関連オブジェクトの子プロパティを作成することに注意してください。たとえば、IntelliSense で Customer オブジェクトを確認すると、その顧客に関連するすべての受注を表す Orders プロパティがあることがわかります。

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

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

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

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

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

  3. O/R デザイナにテーブルを追加すると、デザイナによって DataContext オブジェクトがプロジェクトに追加されます。このオブジェクトには、これらのテーブルにアクセスしたり、各テーブルの個々のオブジェクトとコレクションにアクセスしたりするために必要なコードが含まれています。プロジェクトの DataContext オブジェクトには、.dbml ファイルの名前に基づいて名前が付けられます。このプロジェクトの場合、DataContext オブジェクトの名前は northwindDataContext になります。

    コードで DataContext のインスタンスを作成すると、O/R デザイナによって指定されたテーブルを照会できます。

    データ コンテキストのプロパティとして公開されるテーブルを照会し、その結果を並べ替えるには、Load イベントに次のコードを追加します。このクエリでは、顧客の受注数に基づいて結果が降順に並べ替えられます。受注数が同じ顧客は、会社名に基づいて昇順 (既定) で並べ替えられます。

    Dim db As New northwindDataContext
    
    Dim q = From cust In db.Customers _
            Where cust.Orders.Count > 0 _
            Select cust.CustomerID, cust.CompanyName, _
                   OrderCount = cust.Orders.Count, cust.Country _
            Order By OrderCount Descending, CompanyName
    
    DataGridView1.DataSource = q
    
  4. F5 キーを押してプロジェクトを実行し、結果を確認します。

参照

処理手順

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

概念

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

その他の技術情報

LINQ (Visual Basic)

クエリ (Visual Basic)

LINQ to SQL