[问题] 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