我现在有这行代码已经工作了近6个月:任何原因为什么IsNumeric()在数字上失败?
If IsNumeric(txtProductID.Text) Then
...do stuff
Else
Dim msg As String = "Error!"
End If
突然之间,无论放在txtProductID
(包括普通号)什么样的入口,它失败!我有理由为此疯狂吗?
我现在有这行代码已经工作了近6个月:任何原因为什么IsNumeric()在数字上失败?
If IsNumeric(txtProductID.Text) Then
...do stuff
Else
Dim msg As String = "Error!"
End If
突然之间,无论放在txtProductID
(包括普通号)什么样的入口,它失败!我有理由为此疯狂吗?
唉...我是个白痴......感谢您的帮助球员,但显然我正在收拾我接受输入之前整体形式,所以“”永远不会传为“则IsNumeric”。请不要再看这个问题。我感觉不舒服。
再次感谢您的帮助。
也许时间硬着头皮按下删除键... – mmr 2009-08-02 18:57:22
我们都作出这样的错误一旦在一段时间。我很高兴在这里解释它可以帮助你追踪它。 – 2009-08-02 20:09:34
尝试Trim()
传递到函数之前荷兰国际集团的字符串。此外,而不是使用特定的VB-功能一样IsNumeric
,你可以尝试这样的做法:
Dim input as Integer
If Integer.TryParse(txtProductID.Text, input) Then
....do stuff with input
Else
Dim msg as String = "Error!"
End if
如果您的号码是一个十进制数,则对Double
和Single
相应的功能,以及。
至于具体的原因,IsNumeric
失败,我不能告诉你。我可以告诉你,虽然,我总是发现它有助于坚持BCL-兼容的功能,这些功能与语言无关,而不是具体的语言,像IsNumeric
,Str
等
一个镜头的种类在黑暗,但有一点需要注意的是,也许有人在同一个班上写了一个名为IsNumeric的私人方法。你确定上面的代码正在执行Microsoft.VisualBasic.IsNumeric()吗?如果将光标放在IsNumeric上并按F12,定义指向何处?
我是唯一一个开发和我没有写另一个则IsNumeric方法... THX寿 – Jason 2009-08-02 18:37:16
它是如何失败?它会返回错误的值吗?它会抛出某种异常吗? – jpfollenius 2009-08-02 18:31:04
以何种方式失败?返回错误或抛出错误?你可以在输入表单之外重现这一点吗?尝试在将它传递给IsNumeric之前先打印txtProductID.Text,以确保您传递的是您认为通过它的内容。 – 2009-08-02 18:32:11
谢谢迈克尔,请参阅下面的答案。我觉得很愚蠢。 – Jason 2009-08-02 18:45:30