共用方式為


如何:使用 LINQ 排序查詢結果 (Visual Basic)

Language-Integrated 查詢 (LINQ) 可讓您輕鬆存取資料庫資訊並執行查詢。

下列範例示範如何建立對 SQL Server 資料庫執行查詢的新應用程式,並使用 Order By 子句,依多個字段排序結果。 每個欄位的排序順序可以是遞增順序或遞減順序。 如需詳細資訊,請參閱 Order By 子句

本文中的範例會使用 Northwind 範例資料庫。 若要取得資料庫,請參閱 下載範例資料庫

注意

您的電腦可能會在下列指示中顯示某些 Visual Studio 使用者介面元素的不同名稱或位置。 您擁有的 Visual Studio 版本,以及您所使用的設定會決定這些元素。 如需詳細資訊,請參閱 個人化 IDE

建立資料庫連線

  1. 在 Visual Studio 中,單擊 [檢視] 功能表上的 [/[資料庫總管],以開啟 [/[資料庫總管]

  2. [伺服器總管]/ 中,以滑鼠右鍵按兩下 [資料連線],然後按兩下 [[新增連線]

  3. 指定 Northwind 範例資料庫的有效連線。

加入包含 LINQ to SQL 檔案的專案

  1. 在 Visual Studio 的 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。 選取 Visual Basic Windows Forms 應用程式 作為項目類型。

  2. 在 [專案] 功能表上,按一下 [新增項目]。 選取 LINQ to SQL 類別 項目範本。

  3. 將檔案命名為 northwind.dbml。 點擊 [] 新增 []。 對象關係型設計工具 (O/R 設計工具) 已針對 northwind.dbml 檔案開啟。

要將資料表添加到 O/R 設計工具的查詢中

  1. [伺服器總管]/[資料庫總管]中,展開與 Northwind 資料庫的連線。 展開 資料表 資料夾。

    如果您已關閉 O/R 設計工具,您可以按兩下您稍早新增的 northwind.dbml 檔案來重新開啟它。

  2. 按兩下 [客戶] 資料表,並將其拖曳至設計工具的左窗格。 單擊 [Orders] 資料表,並將它拖曳至設計工具的左窗格。

    設計工具會為專案建立新的 CustomerOrder 物件。 請注意,設計工具會自動偵測數據表之間的關聯性,並建立相關物件的子屬性。 例如,IntelliSense 會顯示 Customer 物件具有與該客戶相關的所有訂單 Orders 屬性。

  3. 儲存變更並關閉設計工具。

  4. 儲存您的專案。

若要新增程式代碼來查詢資料庫並顯示結果

  1. 從 [工具箱],將 DataGridView 控制項拖曳至專案的預設 Windows 表單 Form1。

  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 執行您的項目並檢視結果。

另請參閱