【问题标题】: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) 
    

    【讨论】:

    • 也应该使用AndAlso 而不是And
    【解决方案2】:

    除了不使用Text属性来获取TextBox中包含的字符串之外,你的代码还有另外两个问题。

    1. 您没有验证文本框的内容。如果用户输入的内容无法转换为整数,则会引发异常。
    2. 鉴于变量的名称,您正在执行的测试没有意义。 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)```
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多