关于asp的数据库分屏显示问题.(100分)

  • 主题发起人 主题发起人 xanadu
  • 开始时间 开始时间
X

xanadu

Unregistered / Unconfirmed
GUEST, unregistred user!
我以VBScript写的asp程序想显示数据库里的内容,但是如果数据一多,
就调起来十分慢,想要分屏显示,就是像大富翁的待回答问题一样,可以
分成许多屏显示该数据库,不知怎样实现,敬请指教!
数据库是用VFP5.0建的.
库名:asic ;
表名: asic .
源程序如下:
<html>
<head>
<title>查询结果</title>
<style>
<!--
A:link {text-decoration: none;
color: "#000000"}
A:visited {text-decoration: none;
color: "#000000"}
A:active {text-decoration: none}
A:hover {text-decoration: underline;
color: "#616161"}
-->
</style>
</head>
<body topmargin="0" leftmargin="0">
<table border="1" width="100%" bgcolor="#456BCF" cellspacing="1" cellpadding="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000">
<tr>
<td width="100%" checked="false"><p align="center"><font style="FONT-FAMILY: 宋体;
FONT-SIZE: 9pt" color="#FFFFFF"><strong>您所在的位置</strong>:主页=&amp;gt;请您留言=&amp;gt;ASIC中心留言版</font></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><p align="center"><img src="blank.gif" alt="blank.gif (814 字节)" WIDTH="5" HEIGHT="5"></td>
</tr>
</table>
<%set conn=server.CreateObject("ADODB.CONNECTION")
conn.open "asic","",""
sql="SELECT*FROM asic ORDER BY 时间 DESC"
Set rs=conn.execute(sql)
On Error resume Next
rs.MoveFirst
do while Not rs.eof%>
<div align="center"><center>
<table border="0" width="100%" cellpadding="2">
<tr>
<td width="104%" align="center" bgcolor="#9992FA" colspan="4"><font color="#FFFF00"><strong><span style="font-size: 9pt"><%=Server.HTMLEncode(rs.Fields("姓名").value)%><%=Server.HTMLEncode(rs.Fields("性别").value)%>的留言版</span></strong></font></td>
</tr>
<tr>
<td width="12%" align="center" bgcolor="#C4C4FF">姓名:</td>
<td width="20%" align="center" bgcolor="#C4C4FF"><%=Server.HTMLEncode(rs.Fields("姓名").value)%>
</td>
<td width="7%" align="center" bgcolor="#C4C4FF">E_mail:</td>
<td width="27%" align="center" bgcolor="#C4C4FF"><%=Server.HTMLEncode(rs.Fields("e_mail").value)%>
</td>
</tr>
<tr>
<td width="12%" align="center" bgcolor="#C4C4FF">电话:</td>
<td width="20%" align="center" bgcolor="#C4C4FF"><%=Server.HTMLEncode(rs.Fields("电话").value)%>
</td>
<td width="7%" align="center" bgcolor="#C4C4FF">留言时间:</td>
<td width="27%" align="center" bgcolor="#C4C4FF"><%=Server.HTMLEncode(rs.Fields("时间").value)%>
</td>
</tr>
<tr>
<td width="12%" align="center" bgcolor="#C4C4FF">留言:</td>
<td width="92%" bgcolor="#C4C4FF" colspan="3"><%=Server.HTMLEncode(rs.Fields("留言").value)%>
</td>
</tr>
</table>
</center></div>
<table border="0" width="100%" bordercolor="#000000" cellspacing="1" cellpadding="0" bordercolorlight="#000000" bordercolordark="#000000" bgcolor="#A39BFB" style="font-family: 宋体;
font-size: 9pt">
<tr>
<td width="100%"><p align="center"><a href="feedback.htm">【返回上页】</a></td>
</tr>
</table>
<p><% rs.MoveNext
loop %> <%rs.close
conn.close%></p>
</body>
</html>
 
每次发一定量的数据X,如果超过,则显示页号,让用户选择N,再返回 N*X 开始的记录
 
但是怎样返回纪录的个数和一次显示x个数据呢?具体应该怎样编写1..N
的asp连接关系?
 
怎么这个问题还没解决?
本论坛是用"记录数"/"每页行数"来实现的.
1.求记录数:recordCount, 或"SELECT COUNT(*)"
2.一次显示n个记录,你在循环里用个计数器不就行了?
3.当前应该显示的页码,通过URL来传递,不信你把"打富翁"每个贴子
对应的具体的URL拷贝出来看看,里面有个page=xxxx.
 
这么老的问题, 结了吧:-(
 
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open str,conn,1,1
rs.pagesize=10
rs.absolutepage=request("page")
while not rs.eof and rowcount>0
'显示内容
rs.MoveNext
RowCount=RowCount-1
wend
 
recordset对象有一个moveto x 方法,可以将纪录指针
移至第x条纪录,在用一个pagesize属性决定每屏显示的
纪录条数,或用一个指定条数的循环语句,就可以控制每
次显示的记录条数了。
<font color="red"><h2>大哥</h2></font>,
觉得我说的还行的话,就给点分吧...呜呜...
 
多人接受答案了。
 
后退
顶部