阳江华科国际最新信息:代码错在哪里?我看了两个小时看不出来.

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 12:50:54
执行以下函数后出现以下错误:
ADODB.Recordset (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。

但数据表的记录数有26条,也可以把它们全部显示出来.如果我把For I=1 To Rs.RecordCount 这句代码改为For I=1 To 25的话就不会出错,改为26就出错,请大家帮我找找原因.
解决问题后马上加分.

Sub SavezbSort()
Dim sql,Rs
sql="Select * From Zb"
Set Rs=Server.CreateObject("Adodb.REcordSet")
Rs.Open sql,conn,1,3
Dim sStr,sTemp
'zfoa.goerror(rs.recordcount)
For I=1 To Rs.RecordCount
sStr="box"&i
sTemp=Request.form(sStr)
Rs("SortId")=sTemp
Response.Write "a"& sTemp&"<BR>"
Rs.MoveNext
Next
'Response.End
Rs.UpDate
Rs.Close
Set Rs=Nothing
End Sub
问题补充:我已说了有26条记录,并可以把它们显示出来.

错在Rs.MoveNext 。
因为记录去到26时,再movenext就出现27的记录,所以,把程序改一下:
For I=1 To Rs.RecordCount
sStr="box"&i
sTemp=Request.form(sStr)
Rs("SortId")=sTemp
Response.Write "a"& sTemp&"<BR>"
Rs.MoveNext
Next
'Response.End
Rs.UpDate

改成:
i=1
do while not rs.eof
sStr="box"&i
sTemp=Request.form(sStr)
Rs("SortId")=sTemp
Response.Write "a"& sTemp&"<BR>"
Rs.MoveNext
i=i+1
Rs.UpDate
loop
'Response.End

注:你的rs.update写在那个位置是不能更新数据库的

朋友,帮我解决一个问题:
http://zhidao.baidu.com/question/5650307.html