
调试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 展开
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 展开
4个回答
展开全部
连接没有打开,也就是Conn不存在,对一个不存在的东西调用方法当然会有“缺少对象”的错误
检查一下你定义Conn的地方
检查一下你定义Conn的地方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果已经将所有的查询都完成了,再写conn.close
如果关闭记录集,只要写rs.close就可以了
conn.close应当写在最后,conn就是一个连接,是一个ASP程序与数据库之间通信的通道,关闭了但是后面又用到,当然要显示缺少对象了。
如果关闭记录集,只要写rs.close就可以了
conn.close应当写在最后,conn就是一个连接,是一个ASP程序与数据库之间通信的通道,关闭了但是后面又用到,当然要显示缺少对象了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
%>
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
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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清空了,下面又没创建,怎么还可以用
Msg("公司名称不能为空")
back
Conn.close
Set Conn=Nothing
End if
If UserName="" Then
Msg("姓名不能为空")
back
Conn.close
Set Conn=Nothing
End if
在这里你已经吧conn清空了,下面又没创建,怎么还可以用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询