У меня есть следующий код для вставки данных в таблицу с помощью запроса MySQL в VB.NETпереосмысление/Re-настройки параметров в запросе MySQL
Dim MySqlCmdStr = "INSERT INTO tb_idlink(id1,id2) " &
"VALUES (@par1,@par2)"
MySqlCmd.CommandText = MySqlCmdStr
Dim checkedItem As Object
For Each checkedItem In CheckedListBox_1.CheckedItems
Try
MySqlCmd.Connection = MySqlConn
With MySqlCmd
.Parameters.AddWithValue("@par1", currentID)
.Parameters.AddWithValue("@par2", checkedItem.ToString())
End With
MySqlConn.Open()
MySqlCmd.ExecuteNonQuery()
MySqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
End Try
Next
Моя проблема в том, если у меня есть более чем один ящик проверено в CheckedListBox_1
, а затем во втором цикле исключение, которое говорит что-то вроде «параметр @ par1 уже определен». Есть ли способ переопределить его? Я не совсем знаком со всем API.
Кроме того, я не уверен на 100%, если петля это лучший способ сделать это, но это первое, что появилось в моей голове. Не стесняйтесь предлагать альтернативный способ сделать это.
Создайте свой cmd вне цикла, используя метод add, а не метод addwithvalue. Затем в цикле используйте значение .Value (Name) =. Также не открывайте и не закрывайте соединение в каждом цикле. ДЕЛАТЬ, что вокруг петли –
Спасибо за совет! – robotHamster