A是一个DataTable,对它的列“Times”按降序排列,当“Times”相同时,对列ErrorRate也进行按降序排列。
即列Times排序优先率大于列ErrorRate
形如:
id Times ErrorRate
1   10     5
2   10     4
3   10     3
4   8      1
5   7      10
6   7      9好像用DataView DefaultView Sort方法来做只能完成单列排序
DataView   _MyDV=A.DefaultView; 
_MyDV.   Sort   =   "Times   desc "; 

解决方案 »

  1.   

    _MyDV.  Sort  =  "Times  desc ,ErrorRate desc"; 
    这样试试
      

  2.   

    DataView 提供了几项用于对 DataTable 中的数据进行排序和筛选的功能:
    使用 Sort 属性,您可以指定单个或多个列排序顺序并包含 ASC(升序)和 DESC(降序)参数。
    (Asc升序可省略,多列排序用","隔开)[code=C#]DataView  _MyDV=A.DefaultView; 
    _MyDV.Sort  =  "Times  desc,ErrorRate desc"; code]
      

  3.   

    DataView  _MyDV=A.DefaultView; 
    _MyDV.Sort  =  "Times  desc,ErrorRate desc"; 
      

  4.   

    可以提前在数据库读取的时候排好序。
    如果是在内存里,提供一个笨方法,但觉得能用。
    A是一个DataTable,对它的列“Times”按降序排列,当“Times”相同时,对列ErrorRate也进行按降序排列。1、首先假设Times,ErrorRate的位数最多5位。(Times为倍数,ErrorRate为错误代码5位应该够了)
    2、返回值中增加一列,列名为TimesAndErrorRate,
    列值为 lpad(Times,5,'0')||lpad(ErrorRate,5,'0') as TimesAndErrorRate
    3、在内存里按照TimesAndErrorRate desc排序。