2009-08-02 51 views
0

我现在有这行代码已经工作了近6个月:任何原因为什么IsNumeric()在数字上失败?

If IsNumeric(txtProductID.Text) Then 
    ...do stuff 
Else 
    Dim msg As String = "Error!" 
End If 

突然之间,无论放在txtProductID(包括普通号)什么样的入口,它失败!我有理由为此疯狂吗?

+0

它是如何失败?它会返回错误的值吗?它会抛出某种异常吗? – jpfollenius 2009-08-02 18:31:04

+1

以何种方式失败?返回错误或抛出错误?你可以在输入表单之外重现这一点吗?尝试在将它传递给IsNumeric之前先打印txtProductID.Text,以确保您传递的是您认为通过它的内容。 – 2009-08-02 18:32:11

+0

谢谢迈克尔,请参阅下面的答案。我觉得很愚蠢。 – Jason 2009-08-02 18:45:30

回答

0

唉...我是个白痴......感谢您的帮助球员,但显然我正在收拾我接受输入之前整体形式,所以“”永远不会传为“则IsNumeric”。请不要再看这个问题。我感觉不舒服。

再次感谢您的帮助。

+0

也许时间硬着头皮按下删除键... – mmr 2009-08-02 18:57:22

+0

我们都作出这样的错误一旦在一段时间。我很高兴在这里解释它可以帮助你追踪它。 – 2009-08-02 20:09:34

2

尝试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 

如果您的号码是一个十进制数,则对DoubleSingle相应的功能,以及。

至于具体的原因,IsNumeric失败,我不能告诉你。我可以告诉你,虽然,我总是发现它有助于坚持BCL-兼容的功能,这些功能与语言无关,而不是具体的语言,像IsNumericStr

3

一个镜头的种类在黑暗,但有一点需要注意的是,也许有人在同一个班上写了一个名为IsNumeric的私人方法。你确定上面的代码正在执行Microsoft.VisualBasic.IsNumeric()吗?如果将光标放在IsNumeric上并按F12,定义指向何处?

+0

我是唯一一个开发和我没有写另一个则IsNumeric方法... THX寿 – Jason 2009-08-02 18:37:16

相关问题