日期:2014-05-18  浏览次数:20741 次

求个LINQ看看可能求到么?关于两个dataset合并查询
已经从数据库获取两个dataset,一个结构大致如下:

ds1["mytab"]

编号 数值1 数值2 数值3 数值4
1 12 11 14 23
2 23 21 42 32



ds2["mytab"]
编号 姓名
1 王小丫
2 张大丫

我现在想要合并出一个dataset。就是变成姓名对应数值的,可否用LINQ等方式操作?数据库那边涉及多库联合查询、而且ds的表本来就6kw多条数据我觉得再用join会不会效率过分低下了?

大家有想法有指导性也可留言,或者可以指明搜索关键字。LINQ的东西确实是没怎么用过,完全小白。。。

------解决方案--------------------
var query= from t1 in ds1["mytab"].AsEnumerable()
join t2 in ds2["mytab"].AsEnumerable()
on t1.Field<int>("编号") equals t2.Field<int>("编号") into t
from t2 in t.DefaultIfEmpty()
select new 
{
编号=t1.Field<int>("编号") ,
姓名=t2==null?"":t2.Field<string>("姓名") ,
// 后边自己添加
};



------解决方案--------------------
没接触过linq吗?
------解决方案--------------------
探讨
楼上,这个真的是c#么。。。为什么我有种隐隐的看不懂的感受???!!!
能否直接合并成dataset?

------解决方案--------------------
如果不能操作数据库,那就用Linq To SQL或EF,在ORM里建立两个实体类型的关联,相当于在表中建立关联,不同的是,你根本不用去理会JOIN什么的。
------解决方案--------------------
6kw数据你就不要给linq来做了, 想想其他办法。。比如优化sql代码什么的。 
ps 2l的就是你要求的linq代码了。。。