我目前有这行代码已在过去6个月内运作:
If IsNumeric(txtProductID.Text) Then
...do stuff
Else
Dim msg As String = "Error!"
End If
突然间,无论txtProductID
(包括普通数字)输入什么类型的条目,它都会失败!我有理由为此疯狂吗?
答案 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
如果您的号码是十进制数字,那么Double
和Single
也有相应的功能。
至于IsNumeric
失败的特殊原因,我无法告诉你。不过,我可以告诉你,我一直觉得坚持使用与语言无关而不是特定于语言的BCL兼容函数会很有帮助,比如IsNumeric
,Str
等。
答案 2 :(得分:0)
再次感谢您的帮助。