我有一个名为propID的查询字符串,我想检查它传递的值是否是合法的整数,以避免抛出可能泄露我的数据库信息的错误,我该怎么做?如何测试QueryString
换句话说,我想是这样 - 但在vb.net-:
IF QueryString("propID").Content.Type = "int32" Then Proceed
我有一个名为propID的查询字符串,我想检查它传递的值是否是合法的整数,以避免抛出可能泄露我的数据库信息的错误,我该怎么做?如何测试QueryString
换句话说,我想是这样 - 但在vb.net-:
IF QueryString("propID").Content.Type = "int32" Then Proceed
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
你可以使用TryParse:
Dim myInt As Integer
If Int32.TryParse(QueryString("propID").Content, myInt) Then Proceed
是否正确解析
你可以只使用Int32.TryParse。
您可以尝试'is'关键字来检查对象的类型。
If QueryString("propID").Content.Type Is Int32 Then Proceed
否则Int32.TryParse也可以。
C#版本:
int _PropID;
if (int.TryParse(QueryString["propID"], out _PropID))
{
//Proceed with _PropID
}
将正确尝试解析工作,一个空字符串(例如失败),还是会给予0? – stevehipwell 2009-04-29 13:03:12
空字符串不会评估为0 – TheTXI 2009-04-29 13:04:43