放到Sql Server中重新排序返回DataSet当然可以,不是很想这么做。

解决方案 »

  1.   

    为什么要得到排序后的的DataSet?
    你根据dataView不是一样能处理任何问题吗?除非去数据库,
    或者重新建一个Dataset,加入一个排好序的表
      

  2.   

    一定要得到DataSet吗
    用DataView的Sort不好吗
      

  3.   

    如果不去数据库当然可以,把dataview搞成dataTable啊!:)
    真不懂为什么不直接用DataView,:)
      

  4.   

    我问的不是怎么排序,可能我没有说清楚
    取出的数据是是没有排序的,使用DataView排好之后还需要小计行(新增DataRow)
    烟         数量
    红塔山     2
    红塔山     3
    红塔山合计 5//这是新增的合计行
    云烟       1
    云烟       5
    云烟合计   6//这是新增的合计行
    总计       11//这个是插入的总计
    还有更复杂的情况,就是多个分类依据,比如先按人,烟分类,再求数量合计。
    所以说,我在寻求分类小计的方法。
    存在下面的问题
    1、插入多少条小计(算法?)?
    2、插入后怎么控制顺序(小计肯定要排在明细的后面)?
    我再加50分,欢迎大家讨论。
      

  5.   

    加一个专门的排序字段,在dataview中进行,dataset没法排序
      

  6.   

    你可以在写sql语句的时候写成让其排序,那样得到的DataSet就是排过序之后的
      

  7.   

    楼主的思路不太容易实现,另外定义临时TABLE来实现要容易的多:
    DataTable dt1;
    ...//创建表结构
    DataTable dt2=new DataTable("SELECT DISTINCT 人名,烟名 FROM dv",ds);
    while(dt2.row)
    {
      以dt2之人名,烟名为条件查询、统计Table1记帐表;
      SELECT * FROM dt1 WHERE 人名=dt2.人名 AND 烟名=dt2.烟名;并将结果插入dt1...
      SELECT SUM(数量) FROM dt1 WHERE 人名=dt2.人名 AND 烟名=dt2.烟名;并插入dt1...
    }//dt1即是想要的结果。