存储过程,不在循环中添加多行

时间:2013-01-30 20:30:58

标签: vb.net stored-procedures

我正在尝试将两行插入到一个更大的插入上的数据库中,但是当我尝试一个接一个地进行,只有第一个进入而第二个不进行,这只是代码的一部分,但是唯一有问题的部分,所以我觉得它应该足够了。例外是通过

传递给许多变量的东西
        ElseIf Request.QueryString("f") = 8 Then
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@submission", Session("dfd")) 
            cmd.Parameters.AddWithValue("@questionNumber", 1)
            cmd.Parameters.AddWithValue("@question", 0) 
            cmd.Parameters.AddWithValue("@questionSAnswer", Session("fdd"))
            cmd.Parameters.AddWithValue("@testID", Request.QueryString("f"))
            cmd.Parameters.AddWithValue("@option", 0) '
            cmd.Parameters.AddWithValue("@createdBy", Session("Username"))
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Dispose()
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@submission", Session("fgd")) 
            cmd.Parameters.AddWithValue("@questionNumber", 17)
            cmd.Parameters.AddWithValue("@question", 0) l
            cmd.Parameters.AddWithValue("@questionSAnswer", Session("dffdfdf"))
            cmd.Parameters.AddWithValue("@testID", Request.QueryString("f"))
            cmd.Parameters.AddWithValue("@option", 0) 
            cmd.Parameters.AddWithValue("@createdBy", Session("Username"))
            conn.Open()
            cmd.ExecuteNonQuery()
我解决了这个问题,而不是重新启动我做了额外的命令

 ElseIf Request.QueryString("f") = 8 Then
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@submissionID", Session("SubmissionID"))
            cmd.Parameters.AddWithValue("@questionNumber", 1)
            cmd.Parameters.AddWithValue("@questionID", 0)
            cmd.Parameters.AddWithValue("@questionSAnswer", Session("matches"))
            cmd.Parameters.AddWithValue("@testID", Request.QueryString("f"))
            cmd.Parameters.AddWithValue("@optionID", 0)
            cmd.Parameters.AddWithValue("@createdBy", Session("Username"))
            conn.Open()
            cmd.ExecuteNonQuery()


            cmd1.CommandType = CommandType.StoredProcedure
            cmd1.Parameters.AddWithValue("@submissionID", Session("SubmissionID"))
            cmd1.Parameters.AddWithValue("@questionNumber", 17)
            cmd1.Parameters.AddWithValue("@questionID", 0)
            cmd1.Parameters.AddWithValue("@questionSAnswer", Session("dosing2"))
            cmd1.Parameters.AddWithValue("@testID", Request.QueryString("f"))
            cmd1.Parameters.AddWithValue("@optionID", 0)
            cmd1.Parameters.AddWithValue("@createdBy", Session("Username"))
            cmd1.ExecuteNonQuery()

1 个答案:

答案 0 :(得分:1)

我认为您不能重新打开已经处置的连接。只需关闭它,直到你确定你已经完成它,然后处理它。