• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 477
  • Last Modified:

Loop to insert multiple records

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
ratkinso666
Asked:
ratkinso666
  • 3
  • 2
1 Solution
 
rob_farleyCommented:
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
 
ratkinso666Author Commented:
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
 
ratkinso666Author Commented:
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
 
ratkinso666Author Commented:
Thank you for your EXCELLENT solution!!!
0
 
rob_farleyCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now