Я получаю следующую ошибку, когда нет никакого значения для querystring. (Я имею в виду как index.asp? Идентификатор =).
Ошибка периода выполнения '800a000d' Microsoft VBScript
Несоответствие типов: '[строка: ""]'
index.asp, строка 10
Я пытался преобразовать Нулевое значение во что-то еще со следующим кодом. Это не работало.
MEMBERID = Request.QueryString("ID")
If MEMBERID = "" or MEMBERID = 0 Then
MEMBERID = Session("MEMBERID")
End If
Хорошо, вы получаете идентификатор параметра из QueryString и проверяете, пустой он или ноль, верно? Итак, вы должны сделать что-то вроде:
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
Если вы хотите преобразовать нулю в пустую строку, используйте оператор Concateenation String :
:
MEMBERID = Request.QueryString("ID") & ""
Проверьте на нет:
IF Request.QueryString("ID") IS Nothing Then
...
End If
Вот как я это сделаю:-
dim memberID : memberID = Request.QueryString("ID")
if memberID <> "" then memberID = CLng(memberID)
if memberID = Empty then memberID = Session("MemberID")
Свойство QueryString возвращает либо Пустое
, либо Строку
. Оно никогда не вернёт целое число.
Если идентификатор членства не может быть разобран как целое число, то этот код будет ошибкой. Однако, если значение на ID должно быть целым числом, но на самом деле является чем-то другим, то я бы хотел, чтобы это было неудачно.
Пустое
сравнивается как равное как строке нулевой длины, так и числовому 0.