如何使用LINQ和Where条件连接两个数据表?



我有两个数据表如下

TableA      TableB
UID         QID
QID         Value1
Value2

我想连接两个数据表,得到Value1和valu2。我尝试了以下操作,但没有得到任何数据。

string str = "AAA";
var result = (from t1 in TableA.AsEnumerable()
//join between two tables
join t2 in TableB.AsEnumerable() on t1.Field<string>("UID") equals t2.Field<string>("QID")
//where conditions
where t2.Field<string>("QID") == str && t1.Field<string>("QID") == "ABCD"
//select clause
select t2.Field<string>("Value1"));

这是我的查询不使用LINQ和它的工作。

Select t2.Value1, t2.value2 from  TableA t1 JOIN  TableB t2  ON t2.QID = t1.UID WHERE t2.QID = 'AAAAA' AND t1.QID = 'XXXX'

谢谢你的帮助。

你的LINQ代码应该工作,我猜你只需要使用相同的QID的条件值。

where t2.Field<string>("QID") == "AAA" && t1.Field<string>("QID") == "ABCD"

不等于SQL:

WHERE t2.QID = 'AAAAA' AND t1.QID = 'XXXX'

当你在LINQ

中设置正确的值时,它应该可以工作

最新更新