查詢具類型 DataSet

如果在應用程式設計階段中便已知 DataSet 的結構描述,建議您在使用 LINQ to DataSet 時使用具類型 DataSet。 具類型 DataSet 是衍生自 DataSet 的類別。 因此,它繼承了 DataSet 所有的方法、事件和屬性。 此外,具類型 DataSet 會提供強型別方法、事件和屬性。 這表示,您可以依照名稱存取資料表和資料行,而不需要使用以集合為基礎的方法。 這讓查詢更簡單且更方便讀取。 如需詳細資訊,請參閱具類型 DataSet

LINQ to DataSet 也支援查詢具類型 DataSet。 使用具類型 DataSet 時,您不需要使用泛型 Field 方法或 SetField 方法來存取資料行資料。 系統會在編譯時期提供屬性名稱,因為型別資訊包含在 DataSet 中。 LINQ to DataSet 可讓您存取資料行值當做正確的類型,如此一來您就能在編譯程式碼時攔截類型不符的錯誤,而不必等到執行階段。

開始查詢具類型 DataSet 之前,您必須使用 Visual Studio 中的 DataSet 設計工具來產生此類別。 如需詳細資訊,請參閱建立和設定資料集

範例

下列範例將顯示具型別 DataSet 的查詢:

var query = from o in orders
            where o.OnlineOrderFlag == true
            select new { o.SalesOrderID,
                         o.OrderDate,
                         o.SalesOrderNumber };

foreach(var order in query)
{
    Console.WriteLine("{0}\t{1:d}\t{2}",
      order.SalesOrderID,
      order.OrderDate,
      order.SalesOrderNumber);
}
Dim orders = ds.Tables("SalesOrderHeader")

Dim query = _
       From o In orders _
       Where o.OnlineOrderFlag = True _
       Select New {SalesOrderID := o.SalesOrderID, _
                   OrderDate := o.OrderDate, _
                   SalesOrderNumber := o.SalesOrderNumber}

For Each Dim onlineOrder In query
 Console.WriteLine("{0}\t{1:d}\t{2}", _
 onlineOrder.SalesOrderID, _
 onlineOrder.OrderDate, _
 onlineOrder.SalesOrderNumber)
Next

另請參閱