共用方式為


查詢具型別 DataSet

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