梁家辉什么都能演:Rs.UpDate出错了,请大家帮忙.

来源:百度文库 编辑:高考问答 时间:2024/05/05 01:21:56
执行函数后出现以下错误:
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条记录,并可以把它们显示出来.

我告诉你 你上面所说的

For I=1 To Rs.RecordCount 这句代码改为For I=1 To 25的话就不会出错
是因为 数据库中还有记录...
如是26 你数据库就没有记录了 就会报
ADODB.Recordset (0x800A0BCD) .....
的错误,
所以你到最后要写一个
if not rs.BOF then
Response.Write "数据库中已没有数据! "
end if

不知道是不是这样.你可以参考参考

Sub SavezbSort()
Dim sql,Rs
sql="Select * From Zb"
Set Rs=Server.CreateObject("Adodb.REcordSet")
Rs.Open sql,conn,1,3
Dim sStr,sTemp
I=1
Do Until Rs.EOF
sStr="box"&i
sTemp=Request.form(sStr)
Rs("SortId")=sTemp
Response.Write "a"& sTemp&"<BR>"
Rs.MoveNext
I=I+1
Loop

Rs.UpDate
Rs.Close
Set Rs=Nothing
End Sub