我遇到了对我的vb.net代码进行故障排除的问题

时间:2019-11-26 09:07:22

标签: 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
        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

2 个答案:

答案 0 :(得分:0)

您正在分配一个整数作为字符串,如下所示

Dim AnnualFixedArea As Integer
AnnualFixedArea = AFCTextBox.Text 

为了将整数设置为TextBox的值,请使用以下

Dim AnnualFixedArea As Integer
If Not Integer.TryParse(s, AnnualFixedArea) Then
    AnnualFixedArea = -1
End If

如果可以解析,则会将AnnualFixedArea设置为TextBox的值,或者将其设置为-1。

有关更多信息,请参见Int32.TryParse

答案 1 :(得分:0)

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

当用户只能单击“确定”时询问用户是否要更新是很愚蠢的。

当您仅将文本框的text属性直接分配给网格时,我不确定所有这些变量的用途。 Select Case在这里比较干净。由于x永远是0,所以只使用0。这里没有网络或连接,所以为什么要尝试...结束尝试?

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

<\S.*?=\"(.*reges\[\w+\].*)\">.*>