当没有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
答案 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项属性返回Empty
或String
。它永远不会返回整数。
如果memberID不能解析为整数,则此代码将出错。但是,如果ID上的值应该是一个整数但实际上是其他的东西,那么我希望它失败。
Empty
与零长度字符串和数字0相等。
答案 4 :(得分:0)
嗯,就我而言,代码是这样的:
if TRIM(variavel) <> "0" then
variavel = "1"
end if
我工作的“默认”解决方案是:
if isNull(variavel) then
variavel = "1"
end if
我希望它有所帮助。