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")
  };

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jiang Ying-Fu 的頭像
    Jiang Ying-Fu

    Jiang Ying-Fu的部落格

    Jiang Ying-Fu 發表在 痞客邦 留言(0) 人氣()