2009-04-29 40 views
3

我有一個名爲propID的查詢字符串,我想檢查它傳遞的值是否是合法的整數,以避免拋出可能泄露我的數據庫信息的錯誤,我該怎麼做?如何測試QueryString

換句話說,我想是這樣 - 但在vb.net-:

IF QueryString("propID").Content.Type = "int32" Then Proceed 

回答

5
Dim result as boolean 
result = integer.tryparse(QueryString("propID"), myintegervariable) 

布爾將返回true (將值放入你的myinteger變量中),並且如果解析失敗將返回false。

你也可以寫是

if integer.tryparse(QueryString("propID"), myintegervariable) then 
    //continue going along with myintegervariable 
else 
    //parsing didn't work 
end if 
9

你可以使用TryParse

Dim myInt As Integer 
If Int32.TryParse(QueryString("propID").Content, myInt) Then Proceed 
是否正確解析
+0

將正確嘗試解析工作,一個空字符串(例如失敗),還是會給予0? – stevehipwell 2009-04-29 13:03:12

+0

空字符串不會評估爲0 – TheTXI 2009-04-29 13:04:43

1

您可以嘗試'is'關鍵字來檢查對象的類型。

If QueryString("propID").Content.Type Is Int32 Then Proceed 

否則Int32.TryParse也可以。

1

C#版本:

int _PropID; 
if (int.TryParse(QueryString["propID"], out _PropID)) 
{ 
    //Proceed with _PropID 
}