2009-08-02 58 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

相關問題