调试asp出现“缺少对象”是怎么回事?

错误类型:MicrosoftVBScript运行时错误(0x800A01A8)缺少对象:'Conn'/liuyan.asp,第25行程序部分代码如下:<!--#inclu... 错误类型:
Microsoft VBScript 运行时错误 (0x800A01A8)
缺少对象: 'Conn'
/liuyan.asp, 第 25 行

程序部分代码如下:
<!--#include file="conn.asp" -->
<!--#include file="master/inc/const.asp" -->
<%
Set Rs=server.Createobject("adodb.recordset")
Rs.activeconnection=Conn

If Request("action")="add" Then
companyName=Trim(Request("companyName"))
Username=Trim(Request("Username"))
sex=Trim(Request("sex"))
tel=Trim(Request("tel"))
fax=Trim(Request("fax"))
email=Trim(Request("email"))
content=Request("content")
MemberID=0
If CompanyName="" THen
Msg("公司名称不能为空")
back
Conn.close
Set Conn=Nothing
End if
If UserName="" Then
Msg("姓名不能为空")
back
Conn.close
Set Conn=Nothing
End if
sql="insert into TbGuestBook(MemberID,companyName,userName,sex,tel,fax,email,content) values("&MemberID&",'"&_
companyName&"','"&userName&"','"&sex&"','"&tel&"','"&fax&"','"&email&"','"&content&"')"
Conn.execute(sql)
Conn.close
Set Conn=Nothing
Msgstr="留言成功"
Msg(Msgstr)
Redirect("lxwm.asp")
End if
%>

第25行是Conn.close
conn.asp部分代码如下:
<%
Set Conn=Server.CreateObject("Adodb.Connection")
Connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("master/Data/Showu.asp")
Conn.open Connstr

If Request.Form<>"" Then StopInjection(Request.Form)
If Request.QueryString<>"" Then StopInjection(Request.QueryString)
If Request.Cookies<>"" Then StopInjection(Request.Cookies)
Function StopInjection(values)
For Each N_Get In values
Dim L_Get, L_Get2
For Each L_Get In values
L_Get2 = values(L_Get)
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "(\bselect\b|\sand\s|'|;|\sdeclare\s)"
If regEx.Test(L_Get2) Then
Alert()
response.End()
End If
Set regEx = Nothing
Next
Next
End Function
展开
 我来答
巜明市09
2008-03-14 · TA获得超过168个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:130万
展开全部
连接没有打开,也就是Conn不存在,对一个不存在的东西调用方法当然会有“缺少对象”的错误
检查一下你定义Conn的地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gegeasp
2008-03-15 · 超过43用户采纳过TA的回答
知道答主
回答量:220
采纳率:0%
帮助的人:0
展开全部
如果已经将所有的查询都完成了,再写conn.close
如果关闭记录集,只要写rs.close就可以了
conn.close应当写在最后,conn就是一个连接,是一个ASP程序与数据库之间通信的通道,关闭了但是后面又用到,当然要显示缺少对象了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
louhui1018
2008-03-14 · TA获得超过4824个赞
知道大有可为答主
回答量:2002
采纳率:0%
帮助的人:1882万
展开全部
Set Rs=server.Createobject("adodb.recordset")
Rs.LockType=Rs.CursorType=1;
Rs.ActiveConnection=conn;
Rs.Source="SELECT * FROM 表";
Rs.Open();

'=====================================
1.若楼主的资料库连接页面conn.asp代码OK的话.有可能conn.close关闭太早了.
<%If CompanyName="" THen
Msg("公司名称不能为空")
back
Conn.close '不妨改为rs.close试试看
Set Conn=Nothing '不妨改为set rs=nothing试试看
End if
If UserName="" Then
Msg("姓名不能为空")
back
Conn.close '不妨改为set rs=nothing试试看
Set Conn=Nothing '不妨改为set rs=nothing试试看
End if
%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qianglling
2008-03-14 · 超过32用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:157万
展开全部
If CompanyName="" THen
Msg("公司名称不能为空")
back
Conn.close
Set Conn=Nothing
End if
If UserName="" Then
Msg("姓名不能为空")
back
Conn.close
Set Conn=Nothing
End if
在这里你已经吧conn清空了,下面又没创建,怎么还可以用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式