为什么用do while not rs.eof就会报错“对象关闭时,不允许操作”
代码如下
<!--#include file="..\inc\conn.asp"-->
<!--#include file="..\inc\SessionCheck.asp"-->
<%
Call DBConnBegin()
dim tid,stuid,N,S,S2,S3,A,A2,A3,kaohe,kaohe2,kaohe3,markid
tid=trim((Session("DID")))
sSql="select * from MarkInfo where StuID='"+tid+"'"
oRs.open sSql,oConn,1,1
do while not oRs.eof /*就是这里报错ADODB.Recordset (0x800A0E78)对象关闭时,不允许操作。*/oRs.movenext
markid=oRs("MarkID")
kaohe=oRs("Markdetal1")
kaohe2=oRs("Markdetal2")
kaohe3=oRs("Markdetal3")
oRs.close
sSql="select * from ExamineInfo where StuID='"+markid+"'"
oRs.open sSql,oConn,1,1
if oRs.eof and oRs.bof then
oRs.close
sSql="insert into ExamineInfo values('"&markid&"','"&kaohe&"','"&kaohe2&"','"&kaohe3&"','1')"
oRs.open sSql,oConn,1,1
else oRs.close
sSql="select * from ExamineInfo where StuID='"+markid+"'"
oRs.open sSql,oConn,1,1
………………
loop
如果我在前面加上 if ors.eof and ors.bof then 就不会报错,但是后面的语句都没有执行。
如果改在eles后,或者加if not (ors.eof and ors.bof)仍然会报错。希望大家指点下
------解决方案--------------------
oRs.close 这句不能在 Do Loop循环体内