我想知道是否可以通过连接两个数据表来返回数据表。
var query = from v in dt1.AsEnumerable()
join c in dt2.AsEnumerable() on v.Field<int>("ID") equals c.Field<int>("ID")
where v.Field<string>("col1").Equals("abcd")
&& (c.Field<string>("col1").Equals("8776") || c.Field<string>("col1").Equals("8775"))
select new
{};
我加入了两个具有各种条件的数据表。是否可以从数据表中返回包含数据表的所有行的数据表?
答案 0 :(得分:1)
如果要立即评估查询,则可以返回匿名对象,并且不需要将其作为返回类型传递,也不需要将其作为某种方法的参数类型传递。
var query = from v in dt1.AsEnumerable()
join c in dt2.AsEnumerable() on v.Field<int>("ID") equals c.Field<int>("ID")
where v.Field<string>("col1").Equals("abcd")
&& (c.Field<string>("col1").Equals("8776") || c.Field<string>("col1").Equals("8775"))
select new { v, c };
然后:
foreach (var result in query) {
var v = result.v;
var c = result.c;
// do your magic here
}
如果不是这样,你总是可以用2个字段创建一个简单的结构,每个表对应一个。