回 帖 发 新 帖 刷新版面

主题:ASP问题

为什么我现在注册了一个会员后,
第2次注册的时候说

Microsoft JET Database Engine '80040e21' 

由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。 

\wwwroot\admin.asp, line 40

这是什么意思呢,,要怎样解决??
第40行是rs.update

下面是我代码:

<% 
Dim user,pass,ip,city,imsi
Dim aaa,bbb,ccc,ddd,eee,fff

user=Trim(Request.form("user"))
pass=Trim(Request.form("pass"))
ip=Trim(Request.Form("ip"))
city=Trim(Request.form("city"))
imsi=Trim(Request.form("imsi"))
aaa=Trim(Request.Form("aaa"))
bbb=Trim(Request.Form("bbb"))
ccc=Trim(Request.Form("ccc"))
ddd=Trim(Request.Form("ddd"))
eee=Trim(Request.Form("eee"))
fff=Trim(Request.Form("fff"))

Dim connstr,conn,data
    data = "admin.mdb"
    Connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; Server.MapPath(data)    
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open Connstr

Dim rs,sql
  set rs=server.createobject("adodb.recordset")
  sql="select * from [admin] where 1<>1"
  rs.open sql,conn,3,3
      
      rs.addnew
      rs("user")=user
      rs("pass")=pass
      rs("ip")=ip
      rs("city")=city
      rs("imsi")=imsi
      rs("aaa")=aaa
      rs("bbb")=bbb
      rs("ccc")=ccc
      rs("ddd")=ddd
      rs("eee")=eee
      rs("fff")=fff
   rs.update
   rs.close
set rs=nothing
   Conn.Close
Set Conn = Nothing

response.write "<tr><td align='center' height='22'>注册成功!欢迎您的加入!!</td></tr>"
response.write "<tr><td align='left' height='100'>
你注册的用户名:" &amp; user &amp; "
"
    
%>

回复列表 (共6个回复)

沙发

数据库中可能设置了自动编号,或是主键字段..
这些是不允许重复的..

代码第40行是什么,贴出来看一下.

你第二次输入的数据,完全与第一次不同就应该能插入成功了..

解决办法就是把不能重复的(主键字段),在将要插入数据库前先做查询判断是否已经存在,如果存在则不插入,不存在再插入.

板凳

另,以后针对某一个错误,你可以在论坛提出问题.

标题名是很重要的,你可以直接把错误写在标题上

千万不要再用类似"CharlesKing来下"这样的标题..
我没有义务和大把的时间帮你去解决,只是有空了来看看..
我也不是高手,当然也有我解决不了的问题.
这样的标题你会失去很多高手来帮你解答...

3 楼

荤,,没高手在啊

4 楼

? 解决了没 ?

我1楼发的贴看了么?

5 楼


不行啊,还是一样

6 楼

我说你的第40行代码贴出来..看一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册