注册 登录
编程论坛 ASP技术论坛

用记录集中修改数据为什么加上一句rs.movefirst后出现错误提示

sylknb 发布于 2013-05-23 11:46, 3043 次点击
<!--#Include file = "ADOVBS.INC"-->
<%
  Dim cn1,rs,filepath
  filePath = Server.MapPath("a1.mdb")
  Set cn1 = Server.CreateObject("ADODB.Connection")
  cn1.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & filePath
  Set rs = Server.CreateObject("ADODB.RecordSet")
  '对工资为1200元的记录进行修改
  rs.Open "select * from S where 工资=1500",cn1,1,3  
  
 rs.movefirst----->(错误提示BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。取消后显示正常)
  do while not rs.eof
   if rs.eof then
   exit do
   end if
   
  rs("工资")=1400
  rs.Update
  rs.movenext
  loop
  '关闭记录集于数据库连接
  rs.Close
  Set rs= Nothing
  cn1.Close
  Set cn1 = Nothing
  Response.Redirect "8-5.asp"
%>
4 回复
#2
sylknb2013-05-23 14:12
高人还没有出现呀?请快速指教 。
#3
w89806372013-05-31 22:15
这句话完全可以去掉,我觉得根本就没有用。应为你都把数据库里指针移动到第一条去。还有你这句(
if rs.eof then
   exit do
   end if)
我觉得可以去掉,完全没用(理论上是不会执行到这一句的)。你的do while语句在数据指针移到最后一条的时候是会退出的。
#4
dzt00012013-06-01 09:50
因为sql查询结果是空的,所以指针不能movefirst
这句不用写,如果有记录,指针默认是指向第一条的

[ 本帖最后由 dzt0001 于 2013-6-1 09:51 编辑 ]
#5
ysf01812013-06-03 11:22
rs.movefirst----->(错误提示:BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。取消后显示正常)

一般函数或者内置函数,你不给值时,都有默认的。默认第一条了,你还搞第一条,那就重复,编辑器就返回错误信息了。
1