当前位置:K88软件开发文章中心编程语言AspAsp01 → 文章内容

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

减小字体 增大字体 作者:wangsdong     来源:asp编程网  发布时间:2018-12-30 8:29:44

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 "
首页&
nbsp
上一页&
nbsp
"

else
 
response.write "
<
a href="
"
?page=1&
keyword="
&
keyword&
"
"
"
>
首页<
/a>
&
nbsp
<
a href="
"
?page="
&
page-1&
"
&
keyword="
&
keyword&
"
"
"
>
上一页<
/a>
&
nbsp
"

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>
&
nbsp
"

 
else
 
 
response.write "
<
a href="
"
?page="
&
i&
"
&
keyword="
&
keyword&
"
"
"
>
"
&
i&
"
<
/a>
&
nbsp
"

 
end if 
 

next

if page<
page_count-3 then
 
response.write "
..."

end if
if page=CInt(page_count) then
 
response.write "
<
span>
下一页&
nbsp
最后一页<
/span>
"

else
 
response.write "
<
span>
<
a href="
"
?page="
&
page+1&
"
&
keyword="
&
keyword&
"
"
"
>
下一页<
/a>
&
nbsp
<
a href="
"
?page="
&
page_count&
"
&
keyword="
&
keyword&
"
"
"
>
最后一页<
/a>
<
/span>
"

end if 

%>

<
/td>
<
/tr>

 
<
/TABLE>


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



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