首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Access >

ASP+ACCESS 存库时出现:'bof 或 eof 中有一个是“真”.的有关问题,请帮忙

2012-03-22 
ASP+ACCESS 存库时出现:bof 或 eof 中有一个是“真”...............的问题,请帮忙~自己弄了简单的产品管理

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 & " "


[解决办法]
表名或字段名中含有特殊字符或与系统保留字,都需要加[]

[解决办法]
版主说的对,SQL语句中用了ACCESS关键字ID,要加上[]
另外,xiao7_ben(笨小漆)说的也很有道理,如果没有记录集的返回,你这样的代码必然出错
象你这样的情况,建议直接用UPDATE语句更好

热点排行