Любая причина, почему IsNumeric () не работает на число? - PullRequest
0 голосов
/ 02 августа 2009

В настоящее время у меня есть эта строка кода, которая работает в течение последних 6 месяцев:

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

Внезапно, независимо от того, какой тип записи введен в txtProductID (включая простые числа), он терпит неудачу! Есть ли причина для меня сойти с ума по этому поводу?

Ответы [ 3 ]

3 голосов
/ 02 августа 2009

Какой-то выстрел в темноте, но стоит обратить внимание на то, что, возможно, кто-то написал частный метод IsNumeric в том же классе. Вы уверены, что приведенный выше код выполняет Microsoft.VisualBasic.IsNumeric ()? Если вы наведите курсор на IsNumeric и нажмете F12, куда указывает определение?

2 голосов
/ 02 августа 2009

Попробуйте 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 и т. Д.

0 голосов
/ 02 августа 2009

тьфу ... я идиот ... спасибо за вашу помощь, ребята, но, видимо, я очищал всю свою форму перед тем, как принять ввод, поэтому "" никогда не пройдет как "IsNumeric" Пожалуйста, не смотрите на этот вопрос снова. Я чувствую себя плохо.

Еще раз спасибо за вашу помощь.

...