Language-Integrated Query (LINQ) 查詢會在實作 IEnumerable<(Of <(T>)>) 介面或 IQueryable 介面的資料來源上運作。由於 DataTable 類別 (Class) 不會實作任何一種介面,因此如果您想要在 LINQ 查詢的 From 子句中使用 DataTable 當做 來源,就必須呼叫 AsEnumerable 方法。
var 自訂變數 =
from 自訂名稱(a) in DataTable.AsEnumerable ( )
where 自訂名稱(a).Field< 型態 > ( 欄位名稱 ) 條件式
select new
{
自訂欄位變數 = 自訂名稱(a).Field< 型態 > ( 欄位名稱 )
[ , 自訂欄位變數 = 自訂名稱(a).Field< 型態 > ( 欄位名稱) , ...... ]
};
String SQL = "select * form booklist";
DataTable BookList = ( SQL查詢結果 ) ;
var query =
from order in BookList.AsEnumerable ( )
where order.Field< int > ( "price" ) >= 500
select new
{
id= order.Field< string > ( "Id" ) ,
name = order.Field< string >("Name")
};
foreach ( var od in query )
Console.WriteLine ( "ID : {0}\t Name={1}" , od.id , od.name );
var query2 =
from Order in dt.AsEnumerable ( )
join Details in dt2.AsEnumerable ( )
on Order.Field<string> ( "oid" ) equals
Details.Field<string> ( "did" )
where Order.Field<decimal> ( "Cid" ) =="C0001"
&& Details.Field<decimal> ( "price" ) > 500
select new
{
id = ipbddtl.Field<string>("Oid"),
pid = ipbddtl.Field<decimal>("pid")
};
留言列表