今天闲着没事,用SQL做个了分页,只要传入一个SQL字符串,和排序字段就可以了。
分页原理很简单
用SQL分页,比如要取10-20条数据,
先按某个字段升序排列取前20条,
再按这个字段降序排列取前10条,
再按这个字段升序排列取所有
如:表名TestTable ,排序字段No
select * from (
select top 10 * from (
select top 20 * from
bus order by busNo
) Ta
order by busNo desc
) Tb
order by busNo
运行效果如下:
Default.aspx
Default.aspx.cs
BUG修复1(2011-1-29)
上面代码发现,当数据库记录少的时候,在一页全部显示数据库所有记录,记录结束处不准确,需按以下修改,用方法时,需传入参数
BUG修复2(2011-1-29)
当记录数,正好和每页显示记录数一样时,SQL出现TOP 0
pageCount = AllCount % pageCount 改为:
pageCount = (AllCount % pageCount == 0) ? pageCount : AllCount % pageCount;