错误在哪啊,这么简单的代码还出错,问题在哪啊!

NetBoy 2004-09-22 12:03:17
思路是这样的:
从数据库取出10条数据,用表格显示
每行显示5条

为处理容错性:如果库内满足条件数据不足10条,则以空表显示

代码如下:
<%
Dim rs,sqlstr

Set rs = Server.CreateObject("Adodb.Recordset")
sqlstr = "SELECT TOP 10 i_id FROM table where i_sort=1 ORDER BY i_id DESC"

rs.Open sqlstr,conn,1,1

%>
<% If not rs.eof and not rs.bof Then %>
<%
Dim i
for i=0 to 4
%>
<TD><A href="*.asp?InfoID=<%= rs("i_id") %>" target="_blank"><%= rs("i_id") %></A></TD>
<%
If not rs.eof and not rs.bof Then
'如果还有符合条件记录,则向后移动
rs_FixedAdv.MoveNext
End If

Next
%>
...全文
114 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongzi001179 2004-09-22
  • 打赏
  • 举报
回复
<tr>
<%
i=0
while not rs_new.eof
i=i+1
%>
<td width="50%" height="29"><div align="center"><a href="startDownload.asp?file_id=<%=rs_new("file_id")%>"><%=rs_new("aname")%></a></div></td>
<%
if i=5 then
i=0
%>
</tr>
<%
rs_new.movenext
wend
%>



fashchina 2004-09-22
  • 打赏
  • 举报
回复
<table width="96%" height="90" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000" class="zc1">
<tr bgcolor="#63CF29">
<td height="28" colspan="2"><span class="zc4">『下载目录』</span> <div align="center" class="zc4"></div></td>
</tr>
<%set rs_new=server.CreateObject("Adodb.RecordSet")
rs_new.Source="select top 10 * from file_down order by file_id desc"
rs_new.Open rs_new.Source,conn,1,1
if rs_new.eof then
%> <tr valign="middle" bgcolor="#DEEFDE">
<td height="29" colspan="2">
<div align="center" class="style1">抱歉暂时没有任何的下载信息</div></td>
</tr>

<%
else
do while not rs_new.eof
%>
<tr bgcolor="#DEEFDE">
<%
for j=1 to 5
if not rs_new.eof then
%>


<td width="50%" height="29"><div align="center"><a href="startDownload.asp?file_id=<%=rs_new("file_id")%>"><%=rs_new("aname")%></a></div></td>

<%rs_new.movenext
else
exit for
end if
next
for k=1 to 6-j '如果不足(5个),就用空的单元格填充%>

<td width="50%" height="29"><div align="center" class="style2"> </div></td>
<%
next
%>
</tr><%loop
end if
%>
</tr>



</table>
wzhnet 2004-09-22
  • 打赏
  • 举报
回复
nCount=10-rs.recordcount

if nCount>0 then
'补nCount个空行
end if
bluesky1314520 2004-09-22
  • 打赏
  • 举报
回复
错了,用下面的显示两行,每行5条
<%
Dim rs,sqlstr

Set rs = Server.CreateObject("Adodb.Recordset")
sqlstr = "SELECT TOP 10 i_id FROM table where i_sort=1 ORDER BY i_id DESC"

rs.Open sqlstr,conn,1,1

Dim i,j
for i=1 to 2
%>
<tr>
<%
for j=1 to 5
if not rs.eof then '有数据
%>
<TD><A href="*.asp?InfoID=<%= rs("i_id") %>" target="_blank"><%= rs("i_id") %></A></TD>
<%
rs_FixedAdv.MoveNext
else '没有数据
%>
<td> </td>
<%
End If
next
%>
</tr>
<%
Next
rs.close
%>
NetBoy 2004-09-22
  • 打赏
  • 举报
回复
下班了,下午回来看,先谢谢几位了
bluesky1314520 2004-09-22
  • 打赏
  • 举报
回复
<%
Dim rs,sqlstr

Set rs = Server.CreateObject("Adodb.Recordset")
sqlstr = "SELECT TOP 10 i_id FROM table where i_sort=1 ORDER BY i_id DESC"

rs.Open sqlstr,conn,1,1

Dim i

for i=1 to 10
if not rs.eof then '有数据
%>
<TD><A href="*.asp?InfoID=<%= rs("i_id") %>" target="_blank"><%= rs("i_id") %></A></TD>
<%
rs_FixedAdv.MoveNext
else '没有数据
%>
<td> </td>
<%
End If
Next
rs.close
%>
bbcbs 2004-09-22
  • 打赏
  • 举报
回复
<%
Dim rs,sqlstr

Set rs = Server.CreateObject("Adodb.Recordset")
sqlstr = "SELECT TOP 10 i_id FROM table where i_sort=1 ORDER BY i_id DESC"

rs.Open sqlstr,conn,1,1

If not rs.eof and not rs.bof Then
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<%
Dim i
do while not rs.eof
%>
<TD><A href="*.asp?InfoID=<%= rs("i_id") %>" target="_blank"><%= rs("i_id") %></A></TD>
<%
i=i+1
if i mod 5 =0 then
%>
</TR>
<%
end if
rs.movenext
loop
%>

</TABLE>
<%
end if
%>
bbcbs 2004-09-22
  • 打赏
  • 举报
回复
上面手误写错了。。

<%
end if
rs.movenext
loop
%>
放在</TABLE>前面

bbcbs 2004-09-22
  • 打赏
  • 举报
回复
<%
Dim rs,sqlstr

Set rs = Server.CreateObject("Adodb.Recordset")
sqlstr = "SELECT TOP 10 i_id FROM table where i_sort=1 ORDER BY i_id DESC"

rs.Open sqlstr,conn,1,1

If not rs.eof and not rs.bof Then
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<%
Dim i
do while not rs.eof
%>
<TD><A href="*.asp?InfoID=<%= rs("i_id") %>" target="_blank"><%= rs("i_id") %></A></TD>
<%
i=i+1
if i mod 5 =0 then
%>
</TR>
</TABLE>
<%
end if
rs.movenext
loop
%>
NetBoy 2004-09-22
  • 打赏
  • 举报
回复
报错:
当我尝试把for修改为:
for i=0 to 10
时就报错如下:
========

ADODB.Field 错误 '80020009'

BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

/DEZ/TMP8tkeu4fc00.asp,行 0

========
If not rs.eof and not rs.bof Then
'如果还有符合条件记录,则向后移动
rs_FixedAdv.MoveNext
End If
这句应该已经能把这个错误去除了,[如果移动到记录尾,停止移动]应该还是最后一条记录才对啊
怎么还要报错呢

另外怎样做能,在记录不足10条时显示空呢
xing0091 2004-09-22
  • 打赏
  • 举报
回复
sqlstr = "SELECT TOP 10 i_id,i_sort FROM table where i_sort=1 ORDER BY i_id DESC"
NetBoy 2004-09-22
  • 打赏
  • 举报
回复
谢谢各位!

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧