蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 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说的那段代码来进行排错.
主键只是作为一个标识,如果设置成自动增量的,那就不能改,如果不是,是可以改的.
设置了主键就代表这个字段自动成了这个表的索引.
而如果想建多个索引的话,在一个表里就不能设置主键.




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com