为什么我打开数据库后,就无法用ASP保存纪录呢

我用Access 2000打开一个数据库后,再用ASP保存纪录,但是无法保存.也没有任何提示错误.

即使关闭后,也无法保存.只有在重启后,才可以.

我的代码:

connstr="DBQ="+server.MapPath("a.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("adodb.connection")
conn.open connstr
set rs=server.createobject("adodb.recordset")
sql="select * from order where (id is null)"
rs.open sql,conn,1,3
rs.addnew
rs("user")=request.form("user")
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing

---------------------------------------------------------------

看看你的数据库驱动,推荐驱动:

 1   
 2option explicit   
 3dim startime,endtime,conn,connstr,db   
 4startime=timer()   
 5db="data.mdb"   
 6Set conn = Server.CreateObject("ADODB.Connection")   
 7connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)   
 8conn.Open connstr   
 9function CloseDatabase   
10Conn.close   
11Set conn = Nothing   
12End Function   

---------------------------------------------------------------

rs("user")=request.form("user")
我怀疑这里你的数据类型和request的数据不匹配所致.
---------------------------------------------------------------

你的记录集为静态的,不可更新,改为
rs.open sql,conn,3,1
---------------------------------------------------------------

也可能是配置的关系,共享冲突了。
---------------------------------------------------------------

是不是你的记录号设为自动增1的?
---------------------------------------------------------------

我也是都用SQL語句的﹐同時提醒你確定一下request.form("user")有沒有讀到值﹐而且在頁面前加上response.buffer=true
---------------------------------------------------------------

rs("user")=trim(request.form("user"))
这句的问题,不管这句是否成功赋值,id还是自增了.
rs.addnew
...
rs.update
....
这样id就已经自增了

使用insert 语句吧.

---------------------------------------------------------------

update 语句是修改数据库里已经存在的数据
insert into 才是插入新的数据

insert into hksys (user, email)values('wang','[email protected]')

Published At
Categories with Web编程
comments powered by Disqus