|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
[ASP]关于更新记录的问题
我的数据库某表:
ID Name
10 user001
11 user002
其中ID为数值型主键
但是10和11不可修改
提示:[b]
ADODB.Recordset 错误 '800a0bcd'
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。[/b]
请问:是主键不可修改吗?
或者,我是通过ID号传输的要更改的记录,比如
sql="select * from table where ID='"&trim(request("ID"))&"'"
这样的导致不可修改吗? |
sql="select * from table where ID="&trim(request("ID")) |
你的ID不要加引号...直接
sql="select * from table where ID="&trim(request("ID")) |
显示记录之前加一个判断试一试
如下
if not (rs.bof or rs.eof) then
…………
else
response.write("无记录")
end if |
非常感谢大家的回复,我不是想知道代码要怎么改
我的问题:
请问:是主键不可修改吗?
或者,我是通过ID号传输的要更改的记录,比如
sql="select * from table where ID='"&trim(request("ID"))&"'"
这样的导致不可修改吗? |
自动增量的是不可以修改的(不知道有没有好的办法?)
sql="select * from table where ID='"&trim(request("ID"))&"'"
后的ID=成了字符串了,而ID是数字的,估计这是造成格式不对的原因. |
我的主键不是自增的,应该是可以改的吧
在我的理解里,request到的好像都是字符串的,记得以前有次判断session里的id也是,怎么都不匹配,查了才知道数值类型不同 |
那你把他改成不是主键看能不能改(其他代码不变)如果不可以那就是程序的问题了! |
request得到的当然都是字符串,但是可能你的ID设置成数值型了,那在SQL语句就要求必须转成数值型的,否则就出错.
如果你的ID字段设置成字符型的,那你的问题就出在,你的查询没得到结果,eof或是bof 了.在不确定能不能查到东西的时候,要加上asp910说的那段代码来进行排错.
主键只是作为一个标识,如果设置成自动增量的,那就不能改,如果不是,是可以改的.
设置了主键就代表这个字段自动成了这个表的索引.
而如果想建多个索引的话,在一个表里就不能设置主键. |
|