共用方式為


查詢具型別 DataSet

更新: November 2007

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

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

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

範例

下列範例將顯示具型別 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

請參閱

概念

查詢 DataSet (LINQ to DataSet)

跨資料表查詢 (LINQ to DataSet)

單一資料表查詢 (LINQ to DataSet)