标题:[求助]这个出错的原因
只看楼主
chengxiaobo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-11-15
 问题点数:0 回复次数:24 
[求助]这个出错的原因
我在做注册系统时,在注册处理时,我的程序是这样的:
<%
set cn1=Server.CreateObject("ADODB.Connection")
cn1.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("luntanyonghu.mdb")
a1=trim(Request.Form("user"))
a2=trim(Request.Form("pwd"))
a3=trim(Request.Form("pwd1"))
a4=trim(Request.Form("mail"))
a5=trim(Request.Form("mail1"))
if a2<>a3 then
response.write("两次密码不正确,请返回重输")
elseif a4<>a5 then
response.write("两次电子信箱不正确,请返回重输")
else
cn2=" ' "&a1&" ',' "&a2&" ',' "&a4&" ' "
cn1.Execute( "Insert into users(user,pwd,mail) values (" & cn2 &")" )
cn1.close
response.write("注册成功,感谢你的支持!")
end if

%>
可当我在注册时,出现这样的错误:
错误类型:
Microsoft JET Database Engine (0x80040E14)
INSERT INTO 语句的语法错误。
/bbs/main.asp, 第 16 行
可我看了书啊,书上是这样写的啊,我没有错啊,它怎么说有语法错误呢,错在那了。
搜索更多相关主题的帖子: Microsoft Form Request trim 
2006-12-22 19:32
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 

cn1.Execute( "Insert into users([user],pwd,mail) values (" & cn2 &")" )
加个中括号试试呢?

2006-12-22 22:57
chengxiaobo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-11-15
得分:0 
为什么要在那里加上一个中括号呢?我按你说的我加了,可加了之后就出现了这样的一个错误:
错误类型:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。
/bbs/main.asp, 第 15 行
这是什么意思啊,是不是说我的数据库的数据类型跟上面的不同啊,那怎么弄啊。
2006-12-24 13:03
JavaEE5
Rank: 2
等 级:新手上路
威 望:4
帖 子:150
专家分:0
注 册:2006-12-24
得分:0 
那就看看users表里的字段数据类型是不是都是字符串

我喜欢JavaEE5,虽然对此不了解。
2006-12-24 13:08
chengxiaobo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-11-15
得分:0 
我看了一下,users表里的user是文本,pwd是数字,mail是文本,就是这三个数据类型,没有别的。那你说有什么不对不。要改的话改里。
2006-12-24 13:26
JavaEE5
Rank: 2
等 级:新手上路
威 望:4
帖 子:150
专家分:0
注 册:2006-12-24
得分:0 
cn2="  ' "&amp;a1&amp;" ',"&amp;a2&amp;",' "&amp;a4&amp;" ' "

我喜欢JavaEE5,虽然对此不了解。
2006-12-24 13:35
chengxiaobo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-11-15
得分:0 
你这样好像是没改一样啊,不过我把你这个复制过去了,但又出现了这样的错误:
错误类型:
Microsoft JET Database Engine (0x80040E10)
至少一个参数没有被指定值。
/bbs/main.asp, 第 15 行
这是什么意思啊,不懂。
2006-12-24 13:44
JavaEE5
Rank: 2
等 级:新手上路
威 望:4
帖 子:150
专家分:0
注 册:2006-12-24
得分:0 
我把a2两边的单引号去掉了,因为PWD是数字类型。

至少一个参数没有被指定值。
========
PWD的值传过去没?

a2=trim(Request.Form("pwd"))
'在这里加两句,看看输出什么了,是否正确
response.write(a2)
response.end()

a3=trim(Request.Form("pwd1"))

我喜欢JavaEE5,虽然对此不了解。
2006-12-24 13:53
chengxiaobo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-11-15
得分:0 
呵呵,我加了你那两句错误是没有,输出 也是输出我输入的密码,可数据库里没有记录,没有写进数据库,我把你那两句删了,仍然是那个错误。
2006-12-24 14:20
JavaEE5
Rank: 2
等 级:新手上路
威 望:4
帖 子:150
专家分:0
注 册:2006-12-24
得分:0 
那我也不清楚了~~
你把你那两个页面和数据库打包发上来,我看看

我喜欢JavaEE5,虽然对此不了解。
2006-12-24 14:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-111377-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137230 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved