我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp基础/应用 > 一切都因为分页-再谈分页
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
在JSP中访问数据库大全(10-23)
ASP教程十一、调试ASP脚本(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

一切都因为分页-再谈分页 

作者:佚名   来源:本站教程   点击:   日期:2007-03-22

很久没有被分页困惑了,因为一直以来操作的表中数据量都不大,所以很偷懒地使用了纪录集的PageSize与AbsolutePage。这个的弊端就是一次性地把用到用不到的记录全读出来了,记录数一多就很慢。
解决的思路是,找到一种方法,只读出需要的记录~呵呵~
比较常见的是利用了IN 操作符,例如
SELECT TOP PageSize * From A WHERE id NOT IN (SELECT TOP PageSize*PageNo id FROM A WHERE )

注意一下加红的那部分,select 语句中用到的是他们的值
同样的,数据不是很多的话还行,多了同样是不行的,因为IN的效率不高嘛
思来想去,找到一个方法,利用了id(俺一直是把它设成自增的)的一个特性,
id是从小到大排的,其实只要找到当前页最小id应该大于多少,然后再用上TOP 操作符。
看看
SELECT TOP PageSize * FROM A WHERE id > MinID
第一页的 MinID 当然是 0,然后就可以得出第一页最大的id值,它正是第二页中id必须大于的值,类推~
当然,有一个问题,如果你想直接跳到指定页~~那就不好办了:(
跳到最后一页到还是很简单的,只要使用ORDER BY id DESC


这个思想还是有个破绽呀,如果不按id排序的话,就会很麻烦,可以想到的解决方法是,将上面的做为子查询,外面再套一层查询~
如果看不明白的话,抱歉,那只说明俺的表达能力低虐~而已~
呵呵~所以不用放心上啦!

、)



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。