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