あなたの問題はおそらくここで起こります:
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