ASP+ACCESS 存库时出现:'bof 或 eof 中有一个是“真”...............的问题,请帮忙~
自己弄了简单的产品管理这类的东东,在 '修改产品信息 '这个模块出现了问题,
而且是在存库的时候,(因为我用JS写了个判断用户输入格式的验证),错误为:
错误类型:
ADODB.Recordset (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/kfedit/yx_xg.asp, 第 111 行
部份存库代码为:
set rsyx=server.createobject( "adodb.recordset ")
sql= "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " "
rsyx.open sql,conn,3,3
rsyx( "user_Unit ") =user_Unit
rsyx( "yx_htbh ") =yx_htbh
rsyx( "yx_yxhz ") =yx_yxhz
rsyx.update
rsyx.close
................
yx_data 为库中的一个表
user_id 为用户编号,此编号在库中是唯一的;
id 是 "自动编号 "的,仅在表中是唯一的;
/kfedit/yx_xg.asp, 第 111 行
这行即是:rsyx( "user_Unit ") =user_Unit
我做过如下测试:
1.如果同一用户编号下只有一个产品信息:
那么,只要用sql= "select * from yx_data where user_id= ' " &user_id & " ' 就可以更新了,不会出错;
2.如果同一用户编号下有多个产品信息;
那么,用sql= "select * from yx_data where user_id= ' " &user_id & " ',就会将该表中所有user_id字段的产品信息全部更新,这可不是我想要的结果;
3.用sql= "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " " ,带上该表中id参数,就会出现错误..
错误类型:
ADODB.Recordset (0x800A0BCD)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
另外:在页面中,同一用户的多个产品信息下,点击某一个产品信息的修改按钮后, 是可以正常传递该产品信息可以修改的字段值的.
带上[...and id= "&id& "] 后,表现就是在数据表中,找不到记录;这是怎么回事呢?
各位帮帮忙哈~~
------解决方案----------------------1、字段名加[]
--2、表中是否有关键字
sql= "select * from yx_data where user_id= ' " &user_id & " ' and [id]= "&id& " "
------解决方案--------------------你Open完直接update,也不校验是否存在记录,不出错才怪。
解决的办法很简单。
open完用一个if(rs.eof or rs.bof)校验一下,或者使用recordcount
------解决方案--------------------sql= "select * from yx_data where user_id= ' " & user_id & " ' and [id]= " & id & " "