主题:  对象关闭时,操作不被允许

青苹果

职务:普通成员
等级:1
金币:0.0
发贴:59
#12004/12/8 17:59:45
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>检测结果</title>
</head>

<body bgcolor=#fbfbfb>
<!----="下面是获取表单内部信息">
!---->

<p>
<%


luser = request.form("luser")
lpassword1 = request.form("lpassword1")
lpassword2 = request.form("lpassword2")
lbirthday = request.form("lbirthday")
lemail = request.form("lemail")
lcard = request.form("lcard")

if luser = "" or lpassword1 ="" or lpassword2 ="" or lcard = "" then
response.write("请输入所有的资料")
response.end
end if

if len(luser) < 4 or len(luser)> 10 then
response.write ("你的用户名已超过我们的限定")
response.end
end if

if lpassword1 <> lpassword2 then
response.write ("输入的两次密码不致")
response.End()
end if

if len(lcard)<>15 then
response.write ("你输入的身份证号有误,输入的号码位数应该15")
response.end
end if

if not isnumeric(lcard) then
response.Write("身份证必须为数字格式")
response.end
end if

%>


</p>
<%

dim lconn
set lconn = server.createobject("adodb.connection")
lconn.open ("dsn=lconn")
%>

<%
dim lrs,lsql
set lrs = Server.CreateObject("adodb.recordset")

lsql="insert into reg1(luser,lpassword1,lpassword2,lbirthday,lemail,lcard) values ('"+luser+"','"+lpassword1+"','"+lpassword2+"','"+lbirthday+"','"+lemail+"','"+lcard+"')"
lconn.execute(lsql)
%>
<%
lrs.close
set lrs = nothing
lConn.Close
Set lConn = Nothing
%>


<p>&nbsp;</p>
<p align="center"><font color="#990000"><strong>你已成功注册 </strong></font></p>
</body>

</html>

~~~~~~~~~~~~~~~~~~~~~~~~~~~

上面的就是我的代码,我发现数据也被填入了,怎么会出现这样的提示呢,郁闷啊,



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/12/8 19:48:40
+号改成连接符&试试


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#32004/12/8 19:54:25
因为你创建了lrs对象但是没有open.所以下面的close就出错了
在这里你不需要创建RecordSet,因为你根本没有用到



青苹果

职务:普通成员
等级:1
金币:0.0
发贴:59
#42004/12/9 14:15:57
管理员真历害啊,

我可真的佩服你了, 我后来改了

~~~~~~~~~~~~~~

<%

dim lconn
set lconn = server.createobject("adodb.connection")
lconn.open ("dsn=lconn")
%>

<%
dim lrs,lsql
set lrs = Server.CreateObject("adodb.recordset")

lsql="insert into reg1(luser,lpassword1,lpassword2,lbirthday,lemail,lcard) values ('"+luser+"','"+lpassword1+"','"+lpassword2+"','"+lbirthday+"','"+lemail+"','"+lcard+"')"
lconn.execute(lsql)
response.redirect"sqlconn.asp"
%>

~~~~~~~~~~~~~~~~~

不出问题了,但是我有一点不明白的是,lconn.execute(lsql),不是已经对这个纪录集进行操作了吗,为什么不等同于OPEN呢,



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52004/12/9 14:22:30
你之直接执行的sql语句,没有用到recordset