あなたの問題はおそらくここで起こります:
s = Convert.ToString(ComboBox1.Items(i))
これは値を返しません。指定されたインデックスでオブジェクトの文字列表現を返します。この場合、明らかに typeSystem.Data.DataRowViewです。
ComboBox1.Items(i)適切な型にキャストして、そのValue. または、その aDataRowViewであるため、適切な列名を介して値にアクセスできます。
Dim row = CType(ComboBox1.Items(i), System.Data.DataRowView)
s = row.Item("column_name")
それにもかかわらず、トランザクションが失敗するか成功するかに関係なく、まず接続を確実に閉じて破棄する必要があります。これは、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
オプション 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