Visual Studio:System.InvalidCastException:从字符串“”转换为类型“ Integer”的转换无效。

时间:2019-01-31 06:37:17

标签: vb.net

Option Strict On
Public Class MortgageCalculatorFRM

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles calculatePaymentBTN.Click Dim amount As Integer Dim interestRate As Double If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error) End If amount = CInt(amountTBX.Text) interestRate = CDbl(interestTBX.Text)<code>

我正在尝试检查amountTBX或interestTBX是否为空,如果为空,则会出现消息框。但是,出现MessageBox时,一旦我单击“确定”,就会出现此错误: System.InvalidCastException:'从字符串“”转换为'Integer'类型的转换无效。'我需要帮助,谢谢提前给你!

2 个答案:

答案 0 :(得分:0)

如果验证失败,则您不想继续进行任何操作。在MessageBox后面添加return语句。

If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then
    MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Return
End If

答案 1 :(得分:0)

此代码将正确检查并向用户显示消息,但是在显示该消息后,该代码将继续运行,因为您没有其他说明。因此,仍然尝试进行转换。您需要在以下时间退出该子项目:

If amountTBX.Text.Equals("") Or interestTBX.Text.Equals("") Then
    MessageBox.Show("Enter an amount and an interest rate", "Invalid Data", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Exit Sub
End If

您也可以使用Else,但是通常更容易退出检查,而不增加Else的嵌套。