dataset中有两个表
表A:
id 姓名
----------------------------
1  张三
2  李四
3  王五
4  赵六表B:
id 作品    姓名
-------------------------------
1  水浒    王五
2  红楼梦  李四
3  西游记  张三
4  聊斋    赵六
注意:两个表的id字段为标志递增主键怎样才能按照按照表一中姓名字段的排序规则给表B排序呢?
排序结果应该为:
id 作品    姓名
-------------------------------
3  西游记  张三
2  红楼梦  李四
1  水浒    王五
4  聊斋    赵六请哪位大侠来解答一下,先谢了!

解决方案 »

  1.   

    你最好形成DataTable的时候,用查询数据库的时候进行排序,即用sql一条语句就能完成,
    否则在dataset中进行两个表的排序反而比较麻烦。sql:
    select b.* from a, b where a.姓名 = b.姓名 order by a.id asc
      

  2.   

    我知道,但是我这个表是要用来update的,update好象不支持两个表的select语句,所以只有在dataset中处理,请大侠帮下忙咯.
      

  3.   

    做排序的时候,可以用dataView来排序,
    DataView dv = ds.Tables[0].DefaultView;
    dv.Sort = "作品";
    this.dataGrid1.DataSource = dv;这个是显示在前台的
      

  4.   

    to 我知道,但是我这个表是要用来update的,update好象不支持两个表的select语句,所以只有在dataset中处理,请大侠帮下忙咯.为什么不支持两个表的update呢?
    dataadapter中的updatecommand可以手动配置,如果像你这样主子表比较明显的,通过存储完成,对于command来说就是执行一条语句,配以两个表的参数即可。
      

  5.   

    你要么在DataSet中间再加一张表,使用:
    select b.* from a inner join b on  a.姓名 = b.姓名 order by a.id asc
    其实效果是一样的,你update功能还是和排序放开以后添加功能修改会少一点
      

  6.   

    lz:最简单的办法:建立联合查询,选择你要显示的几列,再用表1的id升序排序,返回的就是你  要的结果了。
      

  7.   

    我已经解决了,我原来是用动态生成的updatecommand所以出现了不支持多表的问题,谢谢咯!