新微赢技术网

标题: 哪位大虾帮我看看这段代码,哪里出问题了? [打印本页]

作者: 满天星    时间: 2010-1-18 07:52
标题: 哪位大虾帮我看看这段代码,哪里出问题了?
我想做个在线的考试程序,下面这个评分的代码就常出问题,
set rsend=conn.execute("select * from test1")
f=0
i=1
do while not rsend.eof
if request.Form("Q"&i)=rsend("answer") then
f=f+1
i=i+1
rsend.movenext
end if
loop
fs=100/i*f

我想应该是这段出问题,,但我不知怎样解决,,大虾,,看你们的了!
作者: tp寶寶^ō^    时间: 2010-1-18 07:52
自己顶
作者: 踏破^ō^凌云    时间: 2010-1-18 07:52
set rsend=conn.execute("select * from test1") f=0 i=1 do while not rsend.eof if request.Form("Q"&i)=rsend("answer") then f=f+1 i=i+1 rsend.movenext end if loop 代码两处地方首先循环记录集用Do Until rsend.eof就很管用。 还有就是rsend.movenext的位置不对,这个错误可能会导致的后果是死循环。网页执行当机。 set rsend=conn.execute("select * from test1") f=0 i=1 Do Until rsend.eof if request.Form("Q"&i)=rsend("answer") then f=f+1 i=i+1 end if rsend.movenext loop 以上为修改后的代码。
作者: づ嗳嘚亽鈊↑    时间: 2010-1-18 07:52
超级谢谢~~~~~~ 我自己还发现了一个问题,, set rsend=conn.execute("select * from test1") f=0 i=1 Do Until rsend.eof if request.Form("Q"&i)=rsend("answer") then f=f+1 i=i+1 end if rsend.movenext loop 在判断答案对错时,,如果答案不对,,那就不执行 "i=i+1" 这句了,, 如果"i"还没加1就继续判断答案,,那后面的就乱了. 不知我这样分析对不? 我认为正确的处理方法应该如下: set rsend=conn.execute("select * from test1") f=0 i=1 Do Until rsend.eof if request.Form("Q"&i)=rsend("answer") then f=f+1 end if i=i+1 rsend.movenext loop
作者: 痴人痴想    时间: 2010-1-18 07:52
这个i=i+1是不是放在rsend.movenext后面更好.
作者: 导演    时间: 2010-1-18 07:53
i=i+1放在rsend.movenext后面是不是更好
作者: bgag    时间: 2010-1-18 07:53
有道理




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2