我有这个存储过程:存储过程插入多重复的行
ALTER PROCEDURE [dbo].[spInsertAttendanceDetail]
@ConstituentIdNo nvarchar(15),
@AttendanceID nvarchar(15)
AS
BEGIN
INSERT INTO tblAttendanceDetail (AttendanceID,ConstituentIdNo)
VALUES (@AttendanceID,@ConstituentIdNo)
END
我用vb.net脚本执行存储过程:
For Each id As Object In Arguments.SelectedValues
Using sql As New SqlProcedure("spInsertAttendanceDetail")
sql.AddParameter("@ConstituentIdNo", constituentIdNo)
sql.AddParameter("@AttendanceID", attendanceID)
sql.ExecuteNonQuery()
End Using
Next
如果我选择从多选电网三条记录,它会插入9条记录,如果我选择4条记录,则会插入16条记录,其中四条记录的值相同。有没有什么方法可以根据我选择的记录数来插入记录让我们说如果从网格中选择三条记录,那么它应该只插入三条记录?谢谢。
问题不在SQL端。在Arguments.SelectedValues中有多少条记录?顺便说一句,你最好移动“使用”部分,在你创建一个过程的地方,创建SqlProcedure,然后填充参数并在循环内部执行。 – FLICKER
看起来像你写道,在每行触发的事件处理程序中的FOR循环 –
@闪烁感谢您的答复和建议。我的网格中有大约9,000条记录。 –