方法: LINQ を使用してクエリ結果を並べ替える (Visual Basic)
統合言語クエリ (LINQ: Language-Integrated Query) を使用すると、データベース情報へのアクセスとクエリの実行を容易に行うことができます。
次の例では、新しいアプリケーションを作成して、SQL Server データベースに対するクエリを実行し、Order By 句によってクエリ結果を複数のフィールドに基づいて並べ替える方法を示します。 各フィールドの並べ替え順序は、昇順にすることも降順にすることもできます。 詳細については、「Order By 句 (Visual Basic)」を参照してください。
このトピックの例では、Northwind サンプル データベースを使用します。 開発用コンピューターに Northwind サンプル データベースがインストールされていない場合は、Microsoft ダウンロード センター の Web サイトからダウンロードできます。 手順については、「サンプル データベースのダウンロード」を参照してください。
注意
次の手順で参照している 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 デザイナーで指定したテーブルを照会できます。
データ コンテキストのプロパティとして公開されるテーブルを照会し、その結果を並べ替えるには、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
F5 キーを押してプロジェクトを実行し、結果を確認します。
参照
処理手順
チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナー)