一个难度系数较大的数据库分页问题!
要求实现上页、下页、尾页的查询,并且可应对不同的排序。
如果没有排序是很简单了,只需取ID号处理即可。但如果加入按名称排序,那么ID顺序就会打乱,所以只能另寻他法。我的想法是这样的:
首先取出所有排序后的ID号存入一个数组:
select ID from table1 order by name
然后再选取数据
select top 20 ID,name from table1 order by name
最后将这些数据绑定到DataGrid
arrayID ID name
0 3 李明
1 10 王辉
2 6 何平
....
当用户点击下页时,取出下一页中对应数组序号的ID即可再输出下一页数据。但我用的方法很笨,就是以对应数组的ID一个一个的取出再输出结果集:
select ID,name from table1 where ID=32
union
select ID,name from table1 where ID=20
union
select ID,name from table1 where ID=4
......
不知各位大侠有没有更简洁的方法?