蓝莓与黑葡萄的区别:Microsoft VBScript 运行时错误 错误 '800a000d'

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 20:10:29
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: '[string: ""]'

/sichuanzt/admin/cp_mana.asp,行69
________________________________
以下是此文件部分内容(第60-89行内容)
<input class=smallInput type="text" name="txtitle" size="13"> <input type="submit" value="查 询" name="title" class=buttonface> <select class="smallSel" name="classid" size="1" onchange="javascript:location.href('cp_mana.asp?classid='+this.value)"><option value=0>===选择您想查看的类别===</option><option value=0>┣查看所有产品信息</option><%men1 0,1%></select>
 
</form>
<form method=Post action="cp_mana.asp?ClassID=<%=ClassID%>">
<div align="center">
<%
ClassID = 0
if request("txtitle")<>"" then
sql="select * from Product Where namesv like '%"&trim(request("txtitle"))&"%' or content like '%"&trim(request("txtitle"))&"%' order by id desc"
elseif not(isnull(request("classid"))) and request("classid")<>0 then
classid=request("classid")
sql="select * from Product Where"
ClassIDz=split(men2(classid),",")
for i = 1 to ubound(ClassIDz)
If i = 1 then
sql = sql & " ClassID="&ClassIDz(i)&""
Else
sql = sql & " or ClassID="&ClassIDz(i)&""
End if
next
sql= sql & " order by ID desc"
else
sql="select * from Product order by ID desc"
end if

Set rs= Server.CreateObject("ADODB.Recordset")
Set rs1= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1

if rs.eof and rs.bof then
楼下的,你改那里了???单纯的复制我的吧???????

二楼的你好,按你的要求改了之后出现以下
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'CInt'

/admin/cp_mana.asp,行69
强制转化的话,还是起先这个错误

大概看了一下,像:
elseif not(isnull(request("classid"))) and request("classid")<>0 then

这样的判断很容易出现问题,前面是判断是否为NULL,即还未初始化的变量,后面又是判断是否为数值类型.建议分两步走,这里大概看得出来是必须是数字,且不得等于0,可以用"IsNumeric"函数:
Dim TmpInt
TmpInt=Request.QueryString("classid")
If IsNumeric(TmpInt) then
if TmpInt>0 then
'符合大于0的条件
else
'小于等于0
end if
else
'非数字
end if
如果classid没有值传过来,则TmpInt会得到一个空的字符串值,这是一个字符串类型的变量,如果你判断是否不等于0或使用CINT进行数据类型转换就会出错。

注:代码太多,没有真正看完,我个人认为,还是将判断的代码先分离,不要一开始就合在一起,容易产生问题。如果处理的过程都正常了,再考虑做一些优化。(这个仅针对初学者,高手的代码一般写得比较严谨。)

sql="select * from Product Where namesv like '%"&trim(request("txtitle"))&"%' or content like '%"&trim(request("txtitle"))&"%' order by id desc"改为
txtitle= trim(request("txtitle"))
sql="select * from Product Where namesv like '%"&txtitle&"%' or content like '%"&txtitle&"%' order by id desc"
试一下

很明显的错误,类型不匹配: '[string: ""]'

elseif not(isnull(request("classid"))) and request("classid")<>0 then

你的 request("classid")是字符类型,你比较的时候转换以下就可以了
所以这句应该写成
elseif not(isnull(request("classid"))) and cint(request("classid"))<>0 then

如果这样继续报错的话,直接强制转化 int(request("classid"))

<input class=smallInput type="text" name="txtitle" size="13"> <input type="submit" value="查 询" name="title" class=buttonface> <select class="smallSel" name="classid" size="1" onchange="javascript:location.href('cp_mana.asp?classid='+this.value)"><option value=0>===选择您想查看的类别===</option><option value=0>┣查看所有产品信息</option><%men1 0,1%></select>

</form>
<form method=Post action="cp_mana.asp?ClassID=<%=ClassID%>">
<div align="center">
<%
ClassID = 0
if request("txtitle")<>"" then
sql="select * from Product Where namesv like '%"&trim(request("txtitle"))&"%' or content like '%"&trim(request("txtitle"))&"%' order by id desc"
elseif not(isnull(request("classid"))) and request("classid")<>0 then
classid=request("classid")
sql="select * from Product Where"
ClassIDz=split(men2(classid),",")
for i = 1 to ubound(ClassIDz)
If i = 1 then
sql = sql & " ClassID="&ClassIDz(i)&""
Else
sql = sql & " or ClassID="&ClassIDz(i)&""
End if
next
sql= sql & " order by ID desc"
else
sql="select * from Product order by ID desc"
end if

Set rs= Server.CreateObject("ADODB.Recordset")
Set rs1= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1

if rs.eof and rs.bof then

elseif not(isnull(request("classid"))) and cint(request("classid"))<>"0"then

下面是全部代码....希望有高手解答..
_______________________________
<%
if session("admin")="" then
response.redirect "admin.asp"
else
if session("flag")>2 then
response.write "<br><p align=center>您没有操作的权限</p>"
response.end
end if
end if
ClassID=Request("ClassID")
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>1 2 3</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<link rel="stylesheet" type="text/css" href="admin.css">
<SCRIPT language=JavaScript>
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</SCRIPT>
</head>
<BODY leftmargin="0" bottommargin="0" rightmargin="0" topmargin="0" marginheight="0" marginwidth="0">
<!--#include file="inc/link.asp"-->
<%
txtitle=request("txtitle")
if not isempty(request("page")) then
currentPage=cint(request("page"))
else
currentPage=1
end if
if not isempty(request("selAnnounce")) then
idlist=request("selAnnounce")
if instr(idlist,",")>0 then
dim idarr
idArr=split(idlist)
dim id
for i = 0 to ubound(idarr)
id=clng(idarr(i))
call deleteannounce(id)
next
else
call deleteannounce(clng(idlist))
end if
end if
dim sql
dim rs
%>
<div align="center">
<br>
<table border="0" width="95%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<div align="center"> </div>
<form name="searchsoft" method="POST" action="cp_mana.asp">
查找相关:
<input class=smallInput type="text" name="txtitle" size="13"> <input type="submit" value="查 询" name="title" class=buttonface> <select class="smallSel" name="classid" size="1" onchange="javascript:location.href('cp_mana.asp?classid='+this.value)"><option value=0>===选择您想查看的类别===</option><option value=0>┣查看所有产品信息</option><%men1 0,1%></select>
 
</form>
<form method=Post action="cp_mana.asp?ClassID=<%=ClassID%>">
<div align="center">
<%
ClassID = 0
if request("txtitle")<>"" then
sql="select * from Product Where namesv like '%"&trim(request("txtitle"))&"%' or content like '%"&trim(request("txtitle"))&"%' order by id desc"
elseif not(isnull(request("classid"))) and request("classid")<>0 then
classid=request("classid")
sql="select * from Product Where"
ClassIDz=split(men2(classid),",")
for i = 1 to ubound(ClassIDz)
If i = 1 then
sql = sql & " ClassID="&ClassIDz(i)&""
Else
sql = sql & " or ClassID="&ClassIDz(i)&""
End if
next
sql= sql & " order by ID desc"
else
sql="select * from Product order by ID desc"
end if

Set rs= Server.CreateObject("ADODB.Recordset")
Set rs1= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1

if rs.eof and rs.bof then
response.write "<p align='center'> 还 没 有 任 何 产 品 </p>"
else
totalPut=rs.recordcount
if currentpage<1 then
currentpage=1
end if
if (currentpage-1)*MaxPerPage>totalput then
if (totalPut mod MaxPerPage)=0 then
currentpage= totalPut \ MaxPerPage
else
currentpage= totalPut \ MaxPerPage + 1
end if

end if
if currentPage=1 then
showpage totalput,MaxPerPage,"cp_mana.asp"
showContent
showpage totalput,MaxPerPage,"cp_mana.asp"
else
if (currentPage-1)*MaxPerPage<totalPut then
rs.move (currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark
showpage totalput,MaxPerPage,"cp_mana.asp"
showContent
showpage totalput,MaxPerPage,"cp_mana.asp"
else
currentPage=1
showpage totalput,MaxPerPage,"cp_mana.asp"
showContent
showpage totalput,MaxPerPage,"cp_mana.asp"
end if
end if
rs.close
end if

set rs=nothing
conn.close
set conn=nothing

sub showContent
dim i
i=0
%>
<div align="center">
<table cellpadding="2" cellspacing="1" border="0" width="100%" class="tableBorder" align=center>
<tr>
<th align=left colspan=6 height=23>修改删除管理</th>
</tr>
<tr>
<td width="50" align="center" height="20" class="forumRow"><strong>ID</strong></td>
<td height="20" align="center" class="forumRow"><strong>名称</strong></td>
<td width="150" align="center" class="forumRow"><strong>产品规格</strong></td>
<td width="150" height="20" align="center" class="forumRow"><b>类别</b></td>
<td width="50" align="center" class="forumRow"><strong>留言</strong></td>
<td width="70" height="20" align="center" class="forumRow">
<input type='submit' class=buttonface value='删 除'>
</td>
</tr><%
dim rsRev,sqlRev,NumberT
set rsRev=server.createobject("adodb.recordset")%>
<%do while not rs.eof%>
<%ID=rs("ID")%>
<%
sqlRev = "select Product_ID from Product_Revert Where Product_ID="&rs("ID")
rsRev.open sqlRev,conn,1,1
NumberT=rsRev.recordcount
rsRev.close
%>
<tr>
<td height="20" class="forumRow">
<p align="center"><%=rs("ID")%>
</td>
<td height="20" class="forumRow"><a href="cp_edit.asp?ID=<%=rs("ID")%>&ClassID=<%=rs("ClassID")%>" title="点击编辑"><%=rs("namesv")%>
</a></td>
<td height="20" align="center" nowrap class="forumRow"><a href="cp_edit.asp?ID=<%=rs("ID")%>&ClassID=<%=rs("ClassID")%>" title="点击编辑"><%=rs("Model")%></a></td>
<td height="20" align="center" nowrap class="forumRow"><a href="cp_mana.asp?classid=<%=rs("classid")%>">
<%Men(rs("classid"))%></a></td>
<td height="20" align="center" class="forumRow"><a href="cp_1mana.asp?id=<%=rs("id")%>&classid=<%=rs("classid")%>"><%=NumberT%></a></td>
<td height="20" class="forumRow">
<p align="center">
<input type='checkbox' name='selAnnounce' value='<%=cstr(rs("ID"))%>'>
</td>
</tr>
<%
i=i+1
if i>=MaxPerPage then exit do
rs.movenext
loop
%>
</table>
</div>
<%
end sub

Function men1(ClassID,up)
Set rsz = conn.execute("select * from ProductClass Where LoID="&ClassID)
If rsz.EOF And rsz.BOF Then
Response.Write ""
Else
While Not rsz.EOF
if classid=cstr(rsz("classid")) then
sel="selected"
else
sel=""
end if
Vcd = ""
For i = 1 to up
if i = up then
If Rsz("LoID")=0 then
Vcd = "⊙" + Vcd
Else
Vcd = "┣" + Vcd
End if
Else
Vcd = "━" + vcd
End if
Next

If rsz("ClassName")="T" Then
Dc = "T(铁质)"
ElseIf rsz("ClassName")="C" Then
Dc = "C(铸钢)"
ElseIf rsz("ClassName")="P" Then
Dc = "P(不锈钢)"
ElseIf rsz("ClassName")="W" Then
Dc = "W(铜质)"
ElseIf rsz("ClassName")="K" Then
Dc = "K(球墨铸铁)"
Else
Dc = rsz("ClassName")
End if

ChildCount = conn.Execute("select count(*) from ProductClass where LoID="&rsz("ClassID"))(0)
response.write "<option " & sel & " value='"+CStr(rsz("classID"))+"' name=classid>"+Vcd+Dc+"</option>"+chr(13)+chr(10)
If ChildCount>0 Then
men1 rsz("ClassID"),up+1
End If
rsz.movenext
Wend
End if
rsz.Close:Set rsz=Nothing
End Function

Function Men(classid)
set rsv=conn.execute("select * from ProductClass where classid="&classid)
If rsv("LoID") <> 0 then Men(rsv("LoID"))
Response.Write rsv("classname")
rsv.close:set rsv=nothing
End Function

Function men2(ClassID)
ZZ = ""
Set rsz = conn.execute("select * from ProductClass Where LoID="&ClassID)
If not(rsz.EOF And rsz.BOF) Then
While Not rsz.EOF
ZZ = ZZ & men2(rsz("ClassID"))
rsz.movenext
Wend
End if
men2 = ZZ & "," & ClassID
rsz.Close:Set rsz=Nothing
End Function

function showpage(totalnumber,maxperpage,filename)
dim n
if totalnumber mod maxperpage=0 then
n= totalnumber \ maxperpage
else
n= totalnumber \ maxperpage+1
end if
response.write "<br> "
if CurrentPage<2 then
response.write "<font color='#000080'>首页 上一页</font> "
else
response.write "<a href="&filename&"?page=1&ClassID="&ClassID&"txtitle="&txtitle&">首页</a> "
response.write "<a href="&filename&"?page="&CurrentPage-1&"&ClassID="&ClassID&"&txtitle="&txtitle&">上一页</a> "
end if
if n-currentpage<1 then
response.write "<font color='#000080'>下一页 尾页</font>"
else
response.write "<a href="&filename&"?page="&(CurrentPage+1)&"&ClassID="&ClassID&"&txtitle="&txtitle&">"
response.write "下一页</a> <a href="&filename&"?page="&n&"&ClassID="&ClassID&"&txtitle="&txtitle&">尾页</a>"
end if
response.write "<font color='#000080'> 页次:</font><strong><font color=red>"&CurrentPage&"</font><font color='#000080'>/"&n&"</strong>页</font> "
response.write "<font color='#000080'> 共<b>"&totalnumber&"</b>篇 <b>"&maxperpage&"</b>篇/页</font><br><br>"

end function

sub deleteannounce(id)
sql="delete from Product where ID="&cstr(id)
conn.execute sql
sql="delete from Product_Revert where Product_ID="&cstr(id)
conn.execute sql
if err.Number<>0 then
err.clear
response.write "删 除 失 败 !<br>"
else
response.write "操作成功!<br>"
end if
End sub
%>
</div></form></td>
</tr>
</table>
</div>
</body>
</html>

______________________
楼下的,还是不行呢.晕
回答者:zwb001