使用 vb.net 遍历组合框控件的值

Amu*_*raj 5 vb.net for-loop

我在这里更新我的问题..我正在使用一个没有电话号码的组合框。我想在一个变量中没有一个接一个地得到电话。现在我使用下面的代码来获取组合框值。但现在仍然收到以下错误消息 System.Data.DataRowView。请帮我解决这个错误。我是 vb.net 的新手。

我的部分代码在这里..

        For i = 0 To ComboBox1.Items.Count
            Dim s As String

            s = Convert.ToString(ComboBox1.Items(i))
        Next i
Run Code Online (Sandbox Code Playgroud)

Den*_*aub 2

您的问题可能发生在这里:

s = Convert.ToString(ComboBox1.Items(i))
Run Code Online (Sandbox Code Playgroud)

这不会返回值。它返回给定索引处对象的字符串表示形式,在您的情况下,该对象的类型显然是System.Data.DataRowView

您必须转换ComboBox1.Items(i)为适当的类型并访问其Value. 或者,由于它是 a DataRowView,您可以通过适当的列名称访问值:

Dim row = CType(ComboBox1.Items(i), System.Data.DataRowView)
s = row.Item("column_name")
Run Code Online (Sandbox Code Playgroud)

尽管如此,首先您绝对应该关闭并处置连接,无论事务是失败还是成功。这可以在finally块中(选项 1)或使用using语句(选项 2)来完成。

选项1

// ...
con1 = New MySqlConnection(str)
con1.Open()
Try
    // ...
Catch ex As Exception
    Lblmsg.Text = " Error in data insertion process....." + ex.Message
Finally
    con1.Close()
    con1.Dispose()
End Try
Run Code Online (Sandbox Code Playgroud)

选项2

// ...
Using con1 as New MySqlConnection(str)
    con1.Open()
    Try
        // ...
    Catch ex As Exception
        Lblmsg.Text = " Error in data insertion process....." + ex.Message
    Finally
        con1.Close()
    End Try
End using
Run Code Online (Sandbox Code Playgroud)