标题:[求助]关于跳出循环的错误处理!
只看楼主
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
结帖率:66.67%
 问题点数:0 回复次数:8 
[求助]关于跳出循环的错误处理!
我用for......next写了个循环语句,代码是这样的!

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="4">
<tr>
<%
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from lp where cataid=15 order by from desc"
rs.open sql,conn,1,3
if rs.eof or rs.bof then
response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
else
for i=0 to 2
%>
<td width="6%" height="18" align="center"><img src="images/biao.jpg" width="5" height="5"></td>
<td><a href="#"><font color="#5D2E38">
<%
if len(rs("title"))>27 then
response.Write(left(server.HTMLEncode(rs("title")),26)&"...")
else
response.Write(server.HTMLEncode(rs("title")))
end if
%></font>
</a></td>
</tr>
<%
rs.movenext
next
end if
set rs=nothing
%>
</table>


现在的错误是如果我的数据中没有大于3条的记录页面就会报错,如果要写一个数据库中没有3条记录,而正常显示,该这么写呢?
是在哪个: rs.movenext
next

中间加那个Exit for 吗?
好象我加了还是错的!

我本意是想只显示3条记录,我也想到用"select top 3 * from lp where cataid=15 order by from desc"

然后用do whlie …………loop来循环。但是它就全部显示了,如果去掉上面的红色部分,就正常了,但是无法实现按照时间降序排列!

[此贴子已经被作者于2006-10-19 13:37:20编辑过]

搜索更多相关主题的帖子: sql bof 
2006-10-19 13:36
jimmy_wang
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-10-10
得分:0 
"select top 3 * from lp where cataid=15 order by from desc"不是order by from desc是order by desc

还有你的for循环是<td>开始的,应该在</td>结束.不是在</tr>结束
2006-10-19 14:01
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
得分:0 
QUOTE:

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="4">
          <tr>
            <%
           set rs=server.CreateObject("ADODB.Recordset")
           sql="select  * from lp where cataid=15 order by from desc"
           rs.open sql,conn,1,3
           if rs.eof or rs.bof then
           response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
           else
           do until rs.eof
          %>
            <td width="6%" height="18" align="center"><img src="images/biao.jpg" width="5" height="5"></td>
            <td><a href="#"><font color="#5D2E38">
              <%
              if len(rs("title"))>27 then
              response.Write(left(server.HTMLEncode(rs("title")),26)&"...")
              else
              response.Write(server.HTMLEncode(rs("title")))
              end if
             %></font>
            </a></td>
          <%
           rs.movenext
           loop
           end if
           set rs=nothing
           %>
       <tr>
  </table>


个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2006-10-19 16:29
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
以下是引用jimmy_wang在2006-10-19 14:01:14的发言:
"select top 3 * from lp where cataid=15 order by from desc"不是order by from desc是order by desc

还有你的for循环是<td>开始的,应该在</td>结束.不是在</tr>结束

这个order by desc by 中间没有字段吗,那怎么排序呢!我的那个from(图简单,原数据库是这个字段,我把它改成日期型了)是日期型的!

我再想问一下那个(for循环是<td>开始的,应该在</td>结束.不是在</tr>结束)和我那样写有什么区别吗!是不是你的方法更好些呢!我去试试!


程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-10-20 08:10
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
以下是引用渚薰在2006-10-19 16:29:48的发言:

<table width="98%" border="0" align="center" cellpadding="0" cellspacing="4">
<tr>
<%
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from lp where cataid=15 order by from desc"
rs.open sql,conn,1,3
if rs.eof or rs.bof then
response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
else
do until rs.eof
%>
<td width="6%" height="18" align="center"><img src="images/biao.jpg" width="5" height="5"></td>
<td><a href="#"><font color="#5D2E38">
<%
if len(rs("title"))>27 then
response.Write(left(server.HTMLEncode(rs("title")),26)&"...")
else
response.Write(server.HTMLEncode(rs("title")))
end if
%></font>
</a></td>
<%
rs.movenext
loop
end if
set rs=nothing
%>
<tr>
</table>

斑竹的意思我明白!也试过了!是可以的但是可能您没有明白我的意思,我是想只让它显示三条,并且按照时间的降序排列。我以前的方法是写一个重复区域,就只显示三条!

<%
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from lp where cataid=15 order by adate desc"
rs.open sql,conn,1,3
if rs.eof or rs.bof then
response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
else
' for i=0 to 5
dim R1_numRows
dim R1_index
R1_numRows=6'随便修改这个数字就可以得到自己想要的条数,在数据库没有这么多条的时候也不会报错!但是我就
是找不到比这更简单的方法!!!

R1_index=0
rs_numRows=rs_numRows+R1_numRows
While ((R1_numRows<>0) AND (NOT rs.EOF))
%>
<td width="6%" height="18" align="center"><img src="images/biao.jpg" width="5" height="5"></td>
<td><a href="#"><font color="#5D2E38">
<%
if len(rs("title"))>27 then
response.Write(left(server.HTMLEncode(rs("title")),26)&"...")
else
response.Write(server.HTMLEncode(rs("title")))
end if
%></font>
</a></td>
</tr>
<%
R1_index=R1_index+1
R1_numRows=R1_numRows-1
rs.MoveNext()
Wend
end if
set rs=nothing
%>

[此贴子已经被作者于2006-10-20 8:20:49编辑过]


程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-10-20 08:19
jimmy_wang
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-10-10
得分:0 
rs.open "select top 3 * from lp where cataid=15 order by adate desc",conn,1,1

if not rs.eof then
response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
end if
while not rs.eof
.
.
.
rs.movenext
wend
set rs=nothing

"select top 3 * from lp where cataid=15 order by from desc"不是order by from desc是order by desc,不好意思啊,没看仔细
2006-10-20 08:45
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
以下是引用jimmy_wang在2006-10-20 8:45:10的发言:
rs.open "select top 3 * from lp where cataid=15 order by adate desc",conn,1,1

if not rs.eof then
response.Write("<font size=-1 color=red>暂无此类型信息!</font>")
end if
while not rs.eof
.
.
.
rs.movenext
wend
set rs=nothing

"select top 3 * from lp where cataid=15 order by from desc"不是order by from desc是order by desc,不好意思啊,没看仔细

这样好象不行吧!
起不了什么作用,关键是在与那个order by adate desc如果我改成order by id desc那么就是可以的,但是这不能够实现按照时间的降序排列啊!


程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-10-20 13:15
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 

楼主在rs.movenext后和next之间
加入
if rs.eof then
exit for
end if
试过能行吗?

2006-10-21 12:07
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
以下是引用yms123在2006-10-21 12:07:34的发言:

楼主在rs.movenext后和next之间
加入
if rs.eof then
exit for
end if
试过能行吗?

刚刚试过,可以的!谢谢斑竹了!


程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-10-21 13:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-97369-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107439 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved