循环遍历数据表并运行存储过程

时间:2011-08-10 02:28:53

标签: asp.net vb.net

我正在尝试遍历数据表,它会将信息传递给我的存储过程,但它无法正常工作。

即使它适用于我manuelly

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim dv As New DataView
            Dim dt As New DataTable
            dv = SqlDataSource1.Select(DataSourceSelectArguments.Empty)

            dt = dv.ToTable()


            For Each row As DataRow In dt.Rows

                If row("vtr_gen10").ToString() = "y" Or row("vn10").ToString() = "a" Or row("vtr_gen10").ToString() = "p" Then
                    Dim SQLCon As New SqlClient.SqlConnection
                    Dim sqlcmd As New SqlCommand
                    SQLCon.ConnectionString = SqlDataSource2.ConnectionString

                    SQLCon.Open()
                    sqlcmd.CommandText = "protest" ' Stored Procedure to Call
                    sqlcmd.CommandType = CommandType.StoredProcedure 'Setup Command Type
                    sqlcmd.Connection = SQLCon 'Active Connection

                    sqlcmd.Parameters.AddWithValue("@ID", row("id"))
                    sqlcmd.Parameters.AddWithValue("@Value", "Y")


                    sqlcmd.ExecuteNonQuery()
                    SQLCon.Close()

                End If

            Next

        End Sub

2 个答案:

答案 0 :(得分:0)

您的代码似乎没有任何问题,但如果您认为它的移动速度太快,请尝试使用System.Threading.Thread.Sleep(milliseconds)添加睡眠

答案 1 :(得分:0)

您是否完全确定在前两个记录之后是否符合IF标准?要查找的一件事是空格或其他字符串异常,例如数据库中的carraige返回...

行(“vn10”)。例如,ToString可能由于某种原因而是“a”而不是“a”。可能值得投入临时调试行,例如:

Throw New Exception("[" & Row("vn10").ToString & "]") 

或检查一些错误失败的记录的长度。