学生名称       课程1      课程2    课程3
  XXX           89          76       100  
  YYY           72          93       98 
  ZZZ           97          72       67现在点击课程1已经实现正反排序,如何在三门课程分数前面各加上一个排序号,会根据后面的分数排序变化。如:按照课程1降序排列后结果应该如下:学生名称       课程1      课程2    课程3
  ZZZ          1 97       3 72     3 67
  XXX          2 89       2 76     1 100  
  YYY          3 72       1 93     2 98
按照您的方法解决如下:
OleDbConnection conn=new OleDbConnection(connStr);
OleDbDataAdapter MyCommand = new OleDbDataAdapter("SELECT 学生名称,课程1,课程2,课程3 FROM chengji", conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "chengji");
DataView Source = ds.Tables["chengji"].DefaultView;
Source.Table.Columns.Add( "名次1",typeof(int)); 
Source.Table.Columns.Add( "名次2",typeof(int));
Source.Table.Columns.Add( "名次3",typeof(int));
Source.Sort="课程1 ASC"; 
for(int i=0; i < Source.Count ; i++)
Source[i]["名次1"] = i+1;
Source.Sort="课程2 ASC"; 
for(int i=0; i < Source.Count ; i++)
Source[i]["名次2"] = i+1;
Source.Sort="课程3 ASC"; 
for(int i=0; i < Source.Count ; i++)
Source[i]["名次3"] = i+1;现在问题是 课程3 中有很多人的成绩为0,排序下来前几排都是0,如下
学生名称       课程1      课程2    课程3
  ZZZ          2 66       3 100    1 0
  XXX          3 79       2 76     2 0  
  YYY          1 58       1 93     3 0
怎么让 课程3 从不是0的开始排序,我如果用"SELECT 学生名称,课程1,课程2,课程3 FROM chengji where 课程3>0,这样这个学生的其它课程也不排序和显示了,所以不行,不知道应该怎么实现,请指导,谢谢(注:数据库ACCESS)