找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4784|回复: 0

[ASP] asp十万条以上数据量的分页方法

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2010-6-22 10:16:02 | 显示全部楼层 |阅读模式


asp开发中,使用普通的分页方法,在数据量小的时候,看不出来速度有何影响。当网站的数据量超过十万条以的时候,使用这种方法分页的时候,速度就可以看出来。于是必须换种方法去解决这种十万条以上的数据量的分页方法。
新的分页方法:
<!-- #include file="conn.asp" -->
  <style>
  td{
font-size:12px;
  }
  </style>
<TABLE border=1 cellspacing=0 cellpadding=0 width=500>
  <TR>
  <td align="center">ID</td>
  <TD height="22" align="center">标题</TD>
  <TD align="center">时间</TD>  
  </TR>
<%
'十万条以上数据的分页的方法
'作者:wangsdong
'来源:www.aspprogram.cn
'原创文件,转载请保留此信息,谢谢
keyword=request("keyword")
page=request("page")
If page="" Or Not IsNumeric(page) then page=1 Else page=CInt(page)
page_size=2
q1=" and status>0"
If keyword<>"请输入关键词" and keyword<>"" then
q1=q1&" and title like '%"&keyword&"%'"
end If
if page>1 then
sql="select top "&page_size&" id,title,content,updatetime from news where 1=1 and id<(select min(id) from (select top "&(page-1)*page_size&" id from news where status>0"&q1&" order by id desc) as c1)"
else  
sql="select top "&page_size&" id,title,content,updatetime  from news where 1=1"  
end if
sql=sql&q1&" order by id desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,1
if not rs.eof then
do while not rs.eof
id=rs("id")
title=rs("title")
content=rs("content")
updatetime=rs("updatetime")
'*************循环的内容开始************************
%>
  <TR>
  <td><%=id%></td>
  <TD height="22"><%=title%></TD>
  <TD><%=updatetime%></TD>  
  </TR>
<%
'*************循环的内容结束************************
rs.movenext
loop
end if
rs.close
%>
<tr><td colspan="3" height="30" align="center">
<%
'分页开始
'计算总页数
page_count=1
sql="select count(*) as t from news where 1=1"&q1
rs.open sql,conn,1,1
if rs.eof then
else
recordset_count=rs("t")
if recordset_count mod page_size=0 then
  page_count=recordset_count\page_size
else
  page_count=recordset_count\page_size+1
end if
end if
rs.close
'分页,分页效果:首页 上一页 ... 2 3 4 5 6 7 ... 下一页 最后一页
if page=1 then
response.write "首页 上一页 "
else
response.write "<a href=""?page=1&keyword="&keyword&""">首页</a> <a href=""?page="&page-1&"&keyword="&keyword&""">上一页</a> "
end if
if page>4 then
s=page-3
response.write "..."
else
s=1   
end if  
if page<=page_count-3 then
e=page+3   
else
e=page_count   
end if   
for i=s to e
if i=page then
  response.write "<font color=""#FF8000""><b>"&i&"</b></font> "
else
  response.write "<a href=""?page="&i&"&keyword="&keyword&""">"&i&"</a> "
end if  
next
if page<page_count-3 then
response.write "..."
end if
if page=CInt(page_count) then
response.write "<span>下一页 最后一页</span>"
else
response.write "<span><a href=""?page="&page+1&"&keyword="&keyword&""">下一页</a> <a href=""?page="&page_count&"&keyword="&keyword&""">最后一页</a></span>"
end if
%>
</td></tr>
</TABLE>

此asp开发源码下载地址:见http://www.aspprogram.cn/html/soft/2010526214427.html

asp十万级数据分页方法.rar

8.18 KB, 下载次数: 5783

【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表