我在这里更新我的问题..我正在使用一个没有电话号码的组合框。我想在一个变量中没有一个接一个地得到电话。现在我使用下面的代码来获取组合框值。但现在仍然收到以下错误消息 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)
您的问题可能发生在这里:
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)