关于排序的问题 现在有一学生成绩表,现在想通过总分生成成绩排名,有没有好点的办法?表结构如下:学号 姓名 语文 数学 物理 化学 ... 总分1000 A 30 50 60 70 2101001 B 42 63 87 90 3001002 C 60 50 54 80 280 ... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的表是数据库里的表还是EXCEL里的表 用select * from tablename order by 总分 desc读取出来 select * from 成绩表 order by 总分 select * from 表 order by 总分后边可加asc 和 desc 分别表示升序,降序 楼上都正解,还可以用DataView的Sort属性来实现DataView view = DataTable1.DefaultView;// By default, the first column sorted ascending.view.Sort = "State, ZipCode DESC";//DESC为降序,State、ZipCode为排序字段 select (语文+ 数学+ 物理 +化学) as sum from 成绩表 order by sum desc 可能我说的有点模糊,我的原意并不是上面个为所讲的,这个表数据是从数据库几个表中抽出来用程序控制得到的DataTable,现在想通过这个DataTable的"总分"列来生成成绩排名,就是想不出来的这个"排名"该用何种算法得到 可以建一个视图,然后再放到DataTable中,把所有的计算放在数据库服务器那里 楼主, 也就是说,你把数据已经都到缓存里面了,不想通过数据库排序去完成排序??如果是这样,你真的有点舍近求远了,RBX8Z() 说得很好,你创建一个视图,再按要求排,问题就能很简单解决,你在界面显示的时候也方便。 如果你不想用视图的办法,那也有解决办法,用DataTable的Select: DataTable table = DataSet1.Tables["总分表"]; string strFilter= ""; string strOrder = "总分 DESC"; DataRow[] foundRows foundRows = table.Select(strFilter, strOrder );现在,foundRows 就是你要的结果。 用DataView也可以。DataView.Sort=" 总分 desc" 对,用DataView可能更简单些: DataView dv= new DataView(table); dv.Sort=" 总分 desc";那么,dv就是你要的结果。 如何把DataGridView中的数据赋给DataTable? 文件的写入的问题。 为何我new 新线程,编译器总是报“应输入方法名称”错误 求正则表达式 web应用程序中的treeview构成问题,请大家指点 请问如何通过进程句柄或进程ID或线程ID来获得程序的主窗体? 我找不到方向了,有谁肯帮我呢? 关于引用.dll中的类 gridview 无法显示新增的DataRow 在datagrid模板列里我设置了CheckBox控件,但是在代码里我如何知道CheckBox被选中了呢 读取问题 急 在等 谢谢! 网络目录的问题
后边可加asc 和 desc 分别表示升序,降序
DataView view = DataTable1.DefaultView;
// By default, the first column sorted ascending.
view.Sort = "State, ZipCode DESC";//DESC为降序,State、ZipCode为排序字段
也就是说,你把数据已经都到缓存里面了,不想通过数据库排序去完成排序??
如果是这样,你真的有点舍近求远了,RBX8Z() 说得很好,你创建一个视图,再按要求排,
问题就能很简单解决,你在界面显示的时候也方便。
如果你不想用视图的办法,那也有解决办法,用DataTable的Select: DataTable table = DataSet1.Tables["总分表"];
string strFilter= "";
string strOrder = "总分 DESC";
DataRow[] foundRows foundRows = table.Select(strFilter, strOrder );现在,foundRows 就是你要的结果。
DataView.Sort=" 总分 desc"
DataView dv= new DataView(table);
dv.Sort=" 总分 desc";
那么,dv就是你要的结果。