本帖最后由 xomix 于 2012-07-18 11:48:29 编辑

解决方案 »

  1.   

    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>("姓名") ,
                   // 后边自己添加
                };
      

  2.   

    楼上,这个真的是c#么为什么我有种隐隐的看不懂的感受???!!!
    能否直接合并成dataset?
      

  3.   

    楼主你不觉得把6kw条数据读到内存里效率更加低下吗,更何况是放在DataSet里,简直不敢想。还是在数据库里做个视图更方便吧。
      

  4.   

    select成datarow再往datatable里面添加。
      

  5.   

    像lz说的这种情况 一般都是做视图比较方便吧。
    干嘛非要把6kw条数据读到内存里再操作?
      

  6.   

    情况没说明清楚
    首先ds1、ds2是固定查询返回好的数据,其次数据库我是不能操作的。
    还有就是即使我想用join这种查询链接两个表,也是需要在两个数据库之间操作。
    所以我才想要在ds之间操作合并和联合查询。
      

  7.   

     不能直接返回dataset
    先返回LIST ,然后使用下边方法转化成DATASET
    http://blog.csdn.net/q107770540/article/details/6556210
      

  8.   

    多谢q107770540的热心回复,我也想吐槽csdn加@功能不会有孩子啊。稍后结贴
      

  9.   

    如果不能操作数据库,那就用Linq To SQL或EF,在ORM里建立两个实体类型的关联,相当于在表中建立关联,不同的是,你根本不用去理会JOIN什么的。
      

  10.   

    6kw数据你就不要给linq来做了, 想想其他办法。。比如优化sql代码什么的。 
    ps 2l的就是你要求的linq代码了