共用方式為


如何:使用 LINQ 在查詢結果中尋找最小值或最大值 (Visual Basic)

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

下列範例示範如何建立對 SQL Server 資料庫執行查詢的新應用程式。 此範例會使用 AggregateGroup By 子句來判斷結果的最小值和最大值。 如需詳細資訊,請參閱 Aggregate 子句Group 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 控件拖曳至專案 Form1 的預設 Windows Form。

  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 以執行專案並檢視結果。

另請參閱