[問題] LINQ去Join Datatable

作者: sakey (花枝丸)   2015-08-19 04:19:06
各位大大好,
我最近在用C#寫網頁,
想使用LINQ去Join Datatable,
但一直會有問題,
以下為程式碼,
var query = from A in resultA.AsEnumerable()
join B in resultB.AsEnumerable()
on A.Field<string>("NAME") equals B.Field<string>("NAME")
select new
{
C = B.Field<string>("MEMBER")
};
foreach (var q in query)
{
newRow["MEMBER"] = q.C.ToString();
}
我試著用逐行執行,
發現他都會在執行完A.Field<string>("NAME") 然後就跳出,
而且是有抓到A表的字串,
但就是不會執行到後面的equals跟上面的join,
所以query完全沒資料,
請問這樣到底是發生了什麼問題呢?
感謝!
作者: CiC (null)   2015-08-19 23:37:00
印象中LINQ是預設延遲執行的,亦即在跑query那段還不會真的去查DB,而是到使用時(如ToList或是你下面的foreach讀取時才會所以逐行執行可能有點問題;可以試著query.ToString印出實際sql語法,拿去SSMS檢查看看為什麼沒資料啊抱歉,才注意到你是操作DataTable那會不會是inner join跟left join造成的差異呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com