【问题标题】:Input string was not in a correct format. vb.net输入字符串的格式不正确。 VB.net
【发布时间】:2019-03-14 15:27:15
【问题描述】:

我正在尝试总结两个文本框的内容,其中一个文本框包含来自数据库的数据,但我不断收到上面的错误信息

    System.FormatException
     HResult=0x80131537
     Message=Input string was not in a correct format.
     Source=mscorlib
     StackTrace:

    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)

    at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)

   at System.Int32.Parse(String s)

     at SchoolManager.Pay_Fees.TxtTermFee_TextChanged(Object sender, EventArgs e) in C:\Users\MASENO\Source\Repos\SchoolManager\SchoolManager\Pay Fees.vb:line 271

    at System.Windows.Forms.Control.OnTextChanged(EventArgs e)

   at System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)

   at System.Windows.Forms.Control.set_Text(String value)

  at System.Windows.Forms.TextBoxBase.set_Text(String value)

  at System.Windows.Forms.TextBox.set_Text(String value)

  at SchoolManager.Pay_Fees.InitializeComponent() in 

  C:\Users\MASENO\Source\Repos\SchoolManager\SchoolManager\Pay Fees.Designer.vb:line 158
 at SchoolManager.Pay_Fees..ctor() in C:\Users\MASENO\Source\Repos\SchoolManager\SchoolManager\Pay Fees.vb:line 9

当我使用 tryparse() 方法使用数据库中的数据测试文本框时,我得到真正的意思是内容是有效的整数

       TxtTotalFee.Text = Integer.TryParse(TxtPBalance.Text,0)

如何才能添加这两个数据?

这是我的代码

   Private Sub TxtTermFee_TextChanged(sender As Object, e As EventArgs) Handles TxtTermFee.TextChanged
    TxtTotalFee.Text = Integer.Parse(TxtPBalance.Text) + Integer.Parse(TxtTermFee.Text)
End Sub

谢谢。

【问题讨论】:

  • 如果您在 txtTotalFee 中输入“True”,则 TextChanged 更改将尝试使用“True”进行计算。这是什么?支付费用.vb:第 271 行
  • @the_lotus 这就是TxtTotalFee.Text = Integer.Parse(TxtPBalance.Text) + Integer.Parse(TxtTermFee.Text)

标签: vb.net textbox


【解决方案1】:

除了你没有使用转换后的值之外,你在 tryparse() 的正确轨道上。

把你的代码改成这个。

    Private Sub TxtTermFee_TextChanged(sender As Object, e As EventArgs) Handles TxtTermFee.TextChanged
    ' Input String.
    Dim value As String = TxtPBalance.Text

    ' Use Integer.TryParse.
    Dim i As Integer
    If (Integer.TryParse(value, i)) Then
        If TxtTermFee.Text = "" Then
        Else
            TxtTotalFee.Text = i + TxtTermFee.Text
        End If

    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2013-08-22
    相关资源
    最近更新 更多