存库时出现'bof 或 eof 中有一个是“真”.'的有关问题!请帮忙看下吧~

存库时出现bof或eof中有一个是“真”...............的问题!请帮忙看下吧~~自己弄了简单的产品管理这类的

存库时出现'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      


  各位,帮忙看下吧~~   不知道我把问题说清楚了没有~~在线等,急~~


[解决办法]
晕我看成插入操作了不好意思
你确信这条记录的存在吗?
[解决办法]
你的字段名有错user_Unit,看数据库中的字段名叫什么吧
[解决办法]
应该是没有找到符合条件的记录,你改这样,应该说不会报错
sql= "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " "
rsyx.open sql,conn,3,3
if not(rsyx.eof and rsyx.eof) then
rsyx( "user_Unit ") =user_Unit
rsyx( "yx_htbh ") =yx_htbh
rsyx( "yx_yxhz ") =yx_yxhz
rsyx.update
end if
rsyx.close


[解决办法]
sql= "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " "
rsyx.open sql,conn,3,3
if not(rsyx.eof and rsyx.eof) then
rsyx( "user_Unit ") =user_Unit
rsyx( "yx_htbh ") =yx_htbh
rsyx( "yx_yxhz ") =yx_yxhz
rsyx.update
else
response.write( " <script> alert( '操作的记录不存在! ');history.go(-1); </script> ")
response.end
end if
rsyx.close
看看什么效果?????????

[解决办法]
set rsyx = server.createobject( "adodb.recordset ")


sql = "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " "
'将sql语句打印出来,然后在数据库中执行试试,确认是否真有这数据
Response.write "Sql = "& Sql & " <br> "
Response.end
[解决办法]
同意楼上的做法,另外,
rsyx.open sql,conn,3,3
的参数改改看看
[解决办法]
就像我上面所说的一样,用sql= "select * from yx_data where user_id= ' " &user_id & "确可以正常操作~~

只是在多产品信息条件下,不行~~
-------------

有少少逻辑问题,假设User_id是唯一,那没必要再加上and id= "&ID


既然你已经发现了加上后面的and id= "&ID有误,那很简单,你显示一下id是什么.


-----------

Response.write "id: "&id '加上这行,看看会不会出现东西出来
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


rsyx.open sql,conn,3,3
建议改成
rsyx.open sql,conn,1,3


只是在多产品信息条件下,不行~~
------------
你这里说,只是在多产品信息条件下不行?是id=多个产品号?如果你同时修改多个产品,你需要用循环.


再行不给我发短信息,你的问题其实很简单的,但就是不知道你那一步错了,我看你这贴子都放了二天了,怎么还在.
[解决办法]
不知我说得是否有道理,你试试看吧。我学的也不深。。。

你在sql= "select * from yx_data where user_id= ' " &user_id & " ' and id= "&id& " "

语句后面也就是给字段赋值的前面加上一个判断语句,看看sql语句返回的记录集是否为空,如果不为空,再向下进行。如果为空,则使用response.write()提示一下。

看看吧,我怀疑是你那两个判断条件出了问题...导致记录集返回有问题。。。不对的话请见谅!
[解决办法]
删除的记录不存在
[解决办法]
同时产生了bof和aof的情况,就是说rs的指针既在上界之外也在下届之外,这样只有一种情况,就是rs所代表的数据集是空的,这样rs的指针无论是指到什么地方都是同时具有bof和eof的属性。

你的情况估计是sql语句查询出来的值是空的,因此数据集也是空的,在读取rs数据集里面的值的时候就会报这个错误。
使用 if rs.bof and rs.eof then 这个判断可以判别rs里面是否有没有数据集,如果符合这个条件,说明数据集是空的,在程序中就要绕开对rs里字段的访问。
[解决办法]
liuluo520(孤单一吻)

删除的记录不存在
========

正解
[解决办法]
set rsyx=server.createobject( "adodb.recordset ")


sql= "select * from yx_data where id= "&id 'id就是唯一的,userid多余
rsyx.open sql,conn,3,3
if not rsyx.eof then
rsyx( "user_Unit ") =user_Unit
rsyx( "yx_htbh ") =yx_htbh
rsyx( "yx_yxhz ") =yx_yxhz
rsyx.update
else
response.write "参数写错了,仔细看看 "
end if
rsyx.close

[解决办法]
user_id= ' " &user_id & " ' and id= " &id

在 and id= "&id& " "加上单引号 ' '改成 and id= ' "&id& " ' "你试一下看能不能