【问题标题】:Convert Textbox value to Integer将文本框值转换为整数
【发布时间】:2015-09-16 09:16:38
【问题描述】:
我有以下整数变量
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”。
我做错了什么?
【问题讨论】:
标签:
vb.net
casting
textbox
integer
【解决方案1】:
错字:使用txtTransactionAmount.Text 而不是txtTransactionAmount
If (Convert.ToInt32(txtTransactionAmount.Text) < sMinAmount AndAlso Convert.ToInt32(txtTransactionAmount.Text) > sMaxAmount)
【解决方案2】:
除了不使用Text属性来获取TextBox中包含的字符串之外,你的代码还有另外两个问题。
- 您没有验证文本框的内容。如果用户输入的内容无法转换为整数,则会引发异常。
- 鉴于变量的名称,您正在执行的测试没有意义。 TextBox 中的值不能既小于最小值又大于最大值。
以下代码使用Integer.TryParse 验证TextBox 的内容并将其转换为整数。它还检查值是否大于或等于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
【解决方案3】:
Val(TextBox.Text) 会将 TextBox 的值转换为整数。
txtTotal.text= Val(txtPrice.text) * Val(txtQuantity.text)```