Reputation: 1313
I've just started to learn VB.Net and SQL. Now I'm creating my first software but I have a problem: I have two tables in my database and I managed to transfer data from table1 to table2. How can I just insert specific rows from table1 to table2. I don't want to copy all the data in table1 to table2; I just want to copy the selected rows.
Here's my code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cmd.CommandText = "INSERT INTO returns(Department, Purpose, Item_details, Requested_by, Approved_by, ReturnDate) SELECT Department, Purpose, Items_Details, Requested_by, Approved_by, Date FROM borrow WHERE Date= '" & Today.Date.ToShortDateString & "';"
cmd.Connection = con
Try
con.Open()
cmd.ExecuteNonQuery()
Finally
con.Close()
End Try
End Sub
I have a listbox which has a sourcebinding which is borrow
and I only want the selected items single row to be transferred to my table returns
but I don't know how to do it. Whenever I click the button, everything in table borrow
will be copied to table returns
.
Upvotes: 0
Views: 262
Reputation: 4932
As suggested in other comments is a good idea to get in the habit of not to use string concatenation for parameter values in a SQL statement.
The following code demonstrates how to use SQL parameters and get the row criteria from the list box.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs
) Handles button1.Click
' Note that I am using an XML literal to improve code readability. '
Dim insertCommand = <xml>
INSERT INTO returns(
Department,
Purpose,
Item_details,
Requested_by,
Approved_by,
ReturnDate
)
SELECT
Department,
Purpose,
Items_Details,
Requested_by,
Approved_by,
Date
FROM borrow
WHERE BorrowId = @BorrowId;
</xml>
Dim param = cmd.CreateParameter()
param.ParameterName = "@BorrowId"
param.Value = listBox.SelectedValue
cmd.CommandText = insertCommand.Value
cmd.Parameters.Add(param)
cmd.Connection = con
Try
con.Open()
cmd.ExecuteNonQuery()
Finally
con.Close()
End Try
End Sub
Upvotes: 2
Reputation: 9607
You need to get the selected row criteria from the listbox and add that to the where clause of your sql.
Upvotes: 0