2015-09-16 82 views
0

我有以下的整數變量轉換文本框的值到整數

Dim sMaxAmount As Integer 
Dim sMinAmount As Integer 

我試圖將它們與一個TextBox場比較。

If (Convert.ToInt32(txtTransactionAmount) < sMinAmount And Convert.ToInt32(txtTransactionAmount) > sMaxAmount) Then 

雖然我將其轉換爲Integer我得到異常

無法投類型的對象System.Web.UI.WebControls.TextBox「到 型 'System.IConvertible'。

我在做什麼錯?

回答

1

錯字:使用txtTransactionAmount.Text代替txtTransactionAmount

If (Convert.ToInt32(txtTransactionAmount.Text) < sMinAmount AndAlso Convert.ToInt32(txtTransactionAmount.Text) > sMaxAmount) 
+1

應該使用'AndAlso'而不是'And' –

+0

@MattWilko我已經更新了我的答案。 –

0

除了不能使用Text屬性來獲取包含在文本框中的字符串,還有另外兩個問題與您的代碼。

  1. 您不驗證TextBox的內容。如果用戶輸入的內容不能轉換爲整數,則會拋出異常。
  2. 考慮到變量的名稱,你正在做的測試沒有意義。 TextBox中的值不能是均小於最小值並且大於最大值的

以下代碼使用Integer.TryParse驗證TextBox的內容並將其轉換爲Integer。它還檢查該值是否大於或等於sMinAmount且小於或等於sMaxAmount

Dim amount As Integer 
If Integer.TryParse(txtTransactionAmount.Text, amount) _ 
    AndAlso amount >= sMinAmount AndAlso aamount <= sMaxAmount Then 
    'The Integer called "amount" now contains a value between sMinAmount and sMinAmount 
End If