Solved

Loop to insert multiple records

Posted on 2008-10-06
5
446 Views
Last Modified: 2013-11-27
Hi all, if I have the following, how would I set this up to loop through and insert multiple rows??   Like in the Select statement I could have a JB_ID with several lines to it, so then I would need the insert to insert multiple lines.. in Visual Studio 2005 VB??

Thanks
Dim BP_Req As Integer

        Dim IT_ID As String

        Dim BP_Desc As String

        Dim BP_Print_Desc As String

        Dim BP_DispOrder As Integer
 

        Dim sql6 As String = "Select BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder from bomPriEquip where JB_ID = @JB_ID"

        Using conn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("HCISDataCARsConnectionString").ConnectionString)

            Dim cmd As New SqlCommand(sql5, conn)

            cmd.Parameters.AddWithValue("@JB_ID", JB_ID)

            Dim reader As SqlClient.SqlDataReader

            cmd.Connection.Open()

            reader = cmd.ExecuteReader

            reader.Read()

            BP_Req = reader("BP_Req")

            IT_ID = reader("IT_ID")

            BP_Desc = reader("BP_Desc")

            BP_Print_Desc = reader("BP_Print_Desc")

            BP_DispOrder = reader("BP_DispOrder")

            cmd.Connection.Close()

        End Using
 

        Dim sql2 As String = "INSERT  INTO [bomPriEquip] (BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder) VALUES (@BP_Req, @IT_ID, @BP_Desc, @BP_Print_Desc, @BP_DispOrder)"

        Using conn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("HCISDataCARsConnectionString").ConnectionString)

            Dim cmd As New SqlCommand(sql1, conn)

            cmd.Parameters.Add(New SqlParameter("@BP_Req", BP_Req))

            cmd.Parameters.Add(New SqlParameter("@IT_ID", IT_ID))

            cmd.Parameters.Add(New SqlParameter("@BP_Desc", BP_Desc))

            cmd.Parameters.Add(New SqlParameter("@BP_Print_Desc", BP_Print_Desc))

            cmd.Parameters.Add(New SqlParameter("@BP_DispOrder", BP_DispOrder))

            cmd.Parameters.Add(New SqlParameter("@JB_IDNew", JB_IDNew))

            conn.Open()

            cmd.ExecuteNonQuery()

            cmd.Connection.Close()

        End Using

Open in new window

0
Comment
Question by:ratkinso666
  • 3
  • 2
5 Comments
 
LVL 14

Accepted Solution

by:
rob_farley earned 500 total points
Comment Utility
Do it in one T-SQL command, rather than two:

INSERT  INTO [bomPriEquip] (BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder)
Select BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder from bomPriEquip where JB_ID = @JB_ID

This will put the results of the SELECT query straight into the INSERT statement - regardless of how many rows there are.

Hope this helps,

Rob
0
 

Author Comment

by:ratkinso666
Comment Utility
I am trying this:
INSERT  INTO [bomPriEquipT] (JB_ID, BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder) values (@JB_IDNew, (Select BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder from bomPriEquip where JB_ID = @JB_ID))

but am getting this error:
Subqueries are not allowed in this context. Only scalar expressions are allowed.

I have to replace the JB_ID with the new one...
0
 

Author Comment

by:ratkinso666
Comment Utility
I got it to work like this,
INSERT  INTO [bomPriEquipT] (JB_ID, BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder) Select @JB_IDNew, BP_Req, IT_ID, BP_Desc, BP_Print_Desc, BP_DispOrder from bomPriEquipT where JB_ID = @JB_ID

Thanks,
Randy
0
 

Author Closing Comment

by:ratkinso666
Comment Utility
Thank you for your EXCELLENT solution!!!
0
 
LVL 14

Expert Comment

by:rob_farley
Comment Utility
No worries. I'm pleased it's working for you.

And yes, you can't combine the VALUES and SELECT statements. But you can make a SELECT statement which just includes whatever you need to make it essentially the same as using VALUES.

Rob
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Nowadays, some of developer are too much worried about data. Who is using data, who is updating it etc. etc. Because, data is more costlier in term of money and information. So security of data is focusing concern in days. Lets' understand the Au…
Entering time in Microsoft Access can be difficult. An input mask often bothers users more than helping them and won't catch all typing errors. This article shows how to create a textbox for 24-hour time input with full validation politely catching …
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now