access添加数据时重复

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:47:06
使用access数据库,当向数据库中添加一个记录时,他会自动添加两条一模一样的数据,并且这种情况并不是必然的,有的时候会多一条,有的时候不多!

下面是源码:
<%
connstr=db
title=replacehtml(trim(request.form("subtitle")))
content=replacehtml(trim(request.form("subcontent")))
username=session("huiyuan_bianhao")
if username="" then
username=request.ServerVariables("REMOTE_ADDR")
end if

set r=server.CreateObject("adodb.recordset")
sql="select * from booklist "
r.open sql,connstr,1,3
r.addnew
r("title")=title
r("content")=content
r("username")=username
r.update
r.close()
set r=nothing
response.write "<script>window.opener.location.reload();window.close();</script>"
%>
关于esechi的说法:在其他页面中没有那一句话,也是出同样的问题
关于mrkingyang的说法:改用insert也是不行的,我是试过后才来这里问的
谢谢两位

个人认为是你机器上mdb driver的问题。装MDAC 2.8了没有?
access是高版本的么?

你直接执行sql,不要用addnew。

set r=server.CreateObject("adodb.recordset")
sql = "insert into booklist (title, content, username) values('" & title & "','" & content & "','" & username & "')"

r.execute (sql)

最后的:esponse.write "<script>window.opener.location.reload();window.close();</script>"
修改成:
esponse.write "<script>if (null != window.opener) window.opener.location.reload();window.close();</script>"

set r=server.CreateObject("adodb.recordset")
sql="select * from booklist where subcontent='"&content&"' or subtitle='"&title&"'"
r.open sql,connstr,1,3

'先判断一下是否有记录,没有记录时才插入。
if not r.eof then
response.Write ("抱歉,您所要用户或标题已经使用!。<br><a href='javas