Reputation: 1
I've a problem with a CheckedListBox. How can I get the SelectedValues into an update query?
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim promozione As String
dest = "INSERT INTO dbo.dest " &
"([ID], [Cod], [SellIn], [SellOut]) " &
"VALUES (@ID, @Cod, @SellIn, @SellOut)"
Dim ins As New SqlDataAdapter(dest, con)
Dim run As New SqlCommand(dest, con)
con.Open()
For Each Cod In CheckedListBox1.CheckedItems()
run.Parameters.Add(New SqlParameter("@ID", ComboBox1.SelectedValue))
run.Parameters.Add(New SqlParameter("@Cod", CheckedListBox1.SelectedValue))
run.Parameters.Add(New SqlParameter("@SellIn", DateTimePicker1.Text))
run.Parameters.Add(New SqlParameter("@SellOut", DateTimePicker2.Text))
run.ExecuteNonQuery()
Next
con.Close()
End Sub
When I click Button2, an error is returned:
'System.Data.SqlClient.SqlException' in System.Data.dll the variable name '@ID' already declared.
Upvotes: 0
Views: 98
Reputation: 1
HOW TO INSERT INTO SQL QUERY MULTIPLE SELECTED ITEMS FROM A CHECKEDLISTBOX! After tow days this is the solution:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim dest As String
dest = "INSERT INTO dbo.dest " &
"([ID], [Cod], [SellIn], [SellOut]) " &
"VALUES (@ID, @Cod, @SellIn, @SellOut)"
Dim ins As New SqlDataAdapter(dest, con)
Dim run As New SqlCommand(dest, con)
con.Open()
For Each Cod As DataRowView In CheckedListBox1.CheckedItems()
run.Parameters.Clear()
run.Parameters.Add(New SqlParameter("@ID", ComboBox1.SelectedValue))
run.Parameters.Add(New SqlParameter("@Cod", Cod("IDCod"))) '<------ IDCods are the CheckedListBox1.ValueMembers'
run.Parameters.Add(New SqlParameter("@SellIn", DateTimePicker1.Text))
run.Parameters.Add(New SqlParameter("@SellOut", DateTimePicker2.Text))
run.ExecuteNonQuery()
Next
con.Close()
End Sub
Upvotes: 0
Reputation: 1319
You should clear parameters collections for each iteration, I believe as shown below. In fact, better way would be to create these parameters outside the loop and then just set their value in each iteration.
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim promozione As String
dest = "INSERT INTO dbo.dest " &
"([ID], [Cod], [SellIn], [SellOut]) " &
"VALUES (@ID, @Cod, @SellIn, @SellOut)"
Dim ins As New SqlDataAdapter(dest, con)
Dim run As New SqlCommand(dest, con)
con.Open()
For Each Cod In CheckedListBox1.CheckedItems()
run.Parameters.Clear()
run.Parameters.Add(New SqlParameter("@ID", ComboBox1.SelectedValue))
run.Parameters.Add(New SqlParameter("@Cod", CheckedListBox1.SelectedValue))
run.Parameters.Add(New SqlParameter("@SellIn", DateTimePicker1.Text))
run.Parameters.Add(New SqlParameter("@SellOut", DateTimePicker2.Text))
run.ExecuteNonQuery()
Next
con.Close()
End Sub
Upvotes: 2