一个参数的多输入存储过程

时间:2014-06-18 17:04:46

标签: vb.net stored-procedures

我有一个存储过程:

ALTER PROCEDURE [dbo].[GISQC_UpdAssignUserWork] 
-- Add the parameters for the stored procedure here
@user varchar(20),
@ordnum varchar(20)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
UPDATE qc_Orders
SET [userName] = @user
WHERE [Ordnum] = @ordnum

END

@ordnum参数可以有多个值。有没有办法执行sp一次并根据@ordnum参数更新多行?

我的VB代码:

Dim user As String = Me.listUser.SelectedItem.ToString

Dim connstring As String = "Data Source=DVHQSQL01;Initial Catalog=GISQC_ProdCopy;Integrated Security=True"
Dim conn As New SqlConnection(connstring)
conn.Open()

For Each row As DataGridViewRow In Me.gridWork.SelectedRows
    'set up SQL command
    Dim cmd As New SqlCommand("dbo.GISQC_UpdAssignUserWork", conn)
    Dim i As Integer = Me.gridWork.CurrentRow.Index
    Dim ordnum As String = Me.gridWork.Item(0, i).ToString
    With cmd
        .CommandType = CommandType.StoredProcedure
        .Connection = conn
        .Parameters.AddWithValue("@user", user)
        .Parameters.AddWithValue("@ordnum", ordnum)
    End With
    cmd.ExecuteNonQuery()
    MsgBox("Work assigned to user " & user & ".")
Next

1 个答案:

答案 0 :(得分:0)

答案:

For Each row As DataGridViewRow In Me.gridWork.SelectedRows
        Dim ordnum As String = row.Cells(0).Value.ToString
        'set up SQL command
        Dim cmd As New SqlCommand("dbo.GISQC_UpdAssignUserWork", conn)

        With cmd
            .CommandType = CommandType.StoredProcedure
            .Connection = conn
            .Parameters.AddWithValue("@user", user)
            .Parameters.AddWithValue("@ordnum", ordnum)
        End With
        cmd.ExecuteNonQuery()
        MsgBox("Work assigned to user " & user & " ordernum: " & ordnum & ".")
    Next

为每个选定的行调用单元格数据允许多个ordnum输入!