类型不匹配:'[string:“”]'

时间:2010-01-10 17:52:49

标签: asp-classic

当没有querystring的值时,我收到以下错误。 (我的意思是像index.asp?ID =)。

Microsoft VBScript运行时错误'800a000d'

类型不匹配:'[string:“”]'

index.asp,第10行

我尝试使用以下代码将NULL值转换为其他值。它不起作用。

MEMBERID        = Request.QueryString("ID")

If MEMBERID = "" or MEMBERID = 0 Then
    MEMBERID = Session("MEMBERID")
End If

5 个答案:

答案 0 :(得分:3)

好的,你从QueryString获取参数ID并检查它是空还是零,对吧?所以,你应该这样做:

MemberId = Request.QueryString("ID")
'*
'* Check for other than numbers just to be safe
'*
If (MemberId = "" Or Not IsNumeric(MemberId)) Then
   MemberId = Session("MemberId")
End If
'*
'* We can't add this check on the above if because
'* in classic ASP, the expression is evaluated as a whole
'* which would generate an exception when converting to Int
'*
If (CInt(MemberId) = 0) Then
   MemberId = Session("MemberId")
End If

答案 1 :(得分:2)

如果要将null转换为空字符串,请使用字符串连接运算符&

MEMBERID = Request.QueryString("ID") & ""

答案 2 :(得分:0)

检查无:

IF Request.QueryString("ID") IS Nothing Then
 ...
End If

答案 3 :(得分:0)

我将如何做到这一点: -

 dim memberID : memberID = Request.QueryString("ID")
 if memberID <> "" then memberID = CLng(memberID)
 if memberID = Empty then memberID = Session("MemberID")

QueryString项属性返回EmptyString。它永远不会返回整数。

如果memberID不能解析为整数,则此代码将出错。但是,如果ID上的值应该是一个整数但实际上是其他的东西,那么我希望它失败。

Empty与零长度字符串和数字0相等。

答案 4 :(得分:0)

嗯,就我而言,代码是这样的:

if TRIM(variavel) <> "0" then
    variavel = "1"
end if

我工作的“默认”解决方案是:

if isNull(variavel) then
    variavel = "1"
end if

我希望它有所帮助。