为什么IsNumeric()在一个数字上失败的原因?

时间:2009-08-02 18:28:13

标签: asp.net vb.net isnumeric

我目前有这行代码已在过去6个月内运作:

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

突然间,无论txtProductID(包括普通数字)输入什么类型的条目,它都会失败!我有理由为此疯狂吗?

3 个答案:

答案 0 :(得分:3)

在黑暗中开枪,但要注意的一件事是,也许有人在同一个类中编写了一个名为IsNumeric的私有方法。您确定上面的代码正在执行Microsoft.VisualBasic.IsNumeric()吗?如果您将光标放在IsNumeric上并按F12,定义指向哪里?

答案 1 :(得分:2)

在将字符串传递给函数之前尝试Trim()。此外,您可以尝试这样的方法,而不是使用像IsNumeric这样的特定于VB的函数:

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等。

答案 2 :(得分:0)

嗯......我是个白痴...感谢你的帮助,但显然我在接受输入之前清除了整个表格,所以“”永远不会传递为“IsNumeric”。请不要再看这个问题了。我生病了。

再次感谢您的帮助。