Excel 我在排除vb.net代码故障时遇到问题

Excel 我在排除vb.net代码故障时遇到问题,excel,vb.net,Excel,Vb.net,我正在尝试更新excel数据库中的数据,但它不断给我一个错误,无法将字符串转换为整数。我猜它有点问题,因为我不擅长vb.net。我正在使用excel数据库。只有第一个combox1部件工作正常,没有任何错误 Dim AreaCode As String Dim x As Integer MsgBox("Do you want to update the records?") If ComboBox1.SelectedIndex.Equals(0) Then

我正在尝试更新excel数据库中的数据,但它不断给我一个错误,无法将字符串转换为整数。我猜它有点问题,因为我不擅长vb.net。我正在使用excel数据库。只有第一个combox1部件工作正常,没有任何错误

 Dim AreaCode As String
    Dim x As Integer
    MsgBox("Do you want to update the records?")
    If ComboBox1.SelectedIndex.Equals(0) Then
        Try
            AreaCode = ACTextBox.Text
            DataGridView.Rows.Item(x).Cells(0).Value = ACTextBox.Text
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End If

    Dim MetropolitanArea As String
    If ComboBox1.SelectedIndex.Equals(1) Then
        Try
            MetropolitanArea = MATextBox.Text
            DataGridView.Rows.Item(x).Cells(1).Value = ACTextBox.Text
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End If

    Dim AnnualFixedArea As Integer
    If ComboBox1.SelectedIndex.Equals(2) Then
        Try
            AnnualFixedArea = AFCTextBox.Text
            DataGridView.Rows.Item(x).Cells(2).Value = AFCTextBox.Text
        Catch ex As Exception
        End Try
    End If

    Dim WagePerHour As String
    If ComboBox1.SelectedIndex.Equals(3) Then
        Try
            WagePerHour = TextBoxWPH.Text
            DataGridView.Rows.Item(x).Cells(3).Value = TextBoxWPH.Text
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End If
End Sub

将整数指定为字符串,如下所示

Dim AnnualFixedArea As Integer
AnnualFixedArea = AFCTextBox.Text 
要将整数设置为文本框的值,请使用下面的

Dim AnnualFixedArea As Integer
If Not Integer.TryParse(s, AnnualFixedArea) Then
    AnnualFixedArea = -1
End If
如果可以解析,这会将AnnualFixedArea设置为文本框的值,或者将其设置为-1


有关详细信息,请参阅。

首先,Excel不是数据库。这是一个电子表格程序。数据库包括MS Sql Server、MySql、Access等

当用户只能单击OK时,询问用户是否想要更新有点愚蠢

当您将文本框的文本属性直接指定给网格时,我不确定所有这些变量的用途。一个精选的案例在这里稍微干净一点。因为x只不过是0,所以只需使用0。这里没有网络或连接,为什么要尝试…结束尝试

您是否意识到已将ACTextBox.Text分配给网格中的两个不同单元格

Private Sub OPCode()
    Select Case ComboBox1.SelectedIndex
        Case 0
            DataGridView1.Rows(0).Cells(0).Value = ACTextBox.Text
        Case 1
            DataGridView1.Rows.Item(0).Cells(1).Value = ACTextBox.Text
        Case 2
            DataGridView1.Rows.Item(0).Cells(2).Value = AFCTextBox.Text
        Case 3
            DataGridView1.Rows.Item(0).Cells(3).Value = TextBoxWPH.Text
    End Select
End Sub

AnnualFixedArea是一个整数,但您正试图为其分配一个字符串。当Option Strict设置为On时,不允许这样做。应该一直如此。您需要使用Convert.ToInt32或更好的Int32.TryParse将字符串转换为数值,即使您的字符串仅包含数字字符。我已尝试将其转换。但它仍然不工作,请打开选项。这是一个由两部分组成的过程。首先,对于当前项目-在解决方案资源管理器中双击“我的项目”。选择左边的Compile。在“选项严格”下拉列表中,选择“启用”。第二,对于未来的项目-进入工具菜单->选项->项目和解决方案->VB默认值。在“选项严格”下拉列表中,选择“启用”。这将使您在运行时避免出现bug。