2009-04-29 17 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 
}