Несоответствие типов: '[строка: “”]'

Я получаю следующую ошибку, когда нет никакого значения для querystring. (Я имею в виду как index.asp? Идентификатор =).

Ошибка периода выполнения '800a000d' Microsoft VBScript

Несоответствие типов: '[строка: ""]'

index.asp, строка 10

Я пытался преобразовать Нулевое значение во что-то еще со следующим кодом. Это не работало.

MEMBERID        = Request.QueryString("ID")

If MEMBERID = "" or MEMBERID = 0 Then
    MEMBERID = Session("MEMBERID")
End If
5
задан Efe Tuncel 10 January 2010 в 17:52
поделиться

4 ответа

Хорошо, вы получаете идентификатор параметра из 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
3
ответ дан 14 December 2019 в 08:51
поделиться

Если вы хотите преобразовать нулю в пустую строку, используйте оператор Concateenation String : :

MEMBERID = Request.QueryString("ID") & ""
3
ответ дан 14 December 2019 в 08:51
поделиться

Проверьте на нет:

IF Request.QueryString("ID") IS Nothing Then
 ...
End If
0
ответ дан 14 December 2019 в 08:51
поделиться

Вот как я это сделаю:-

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

Свойство QueryString возвращает либо Пустое , либо Строку . Оно никогда не вернёт целое число.

Если идентификатор членства не может быть разобран как целое число, то этот код будет ошибкой. Однако, если значение на ID должно быть целым числом, но на самом деле является чем-то другим, то я бы хотел, чтобы это было неудачно.

Пустое сравнивается как равное как строке нулевой длины, так и числовому 0.

0
ответ дан 14 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: