我正在尝试遍历数据表,它会将信息传递给我的存储过程,但它无法正常工作。
即使它适用于我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
答案 0 :(得分:0)
您的代码似乎没有任何问题,但如果您认为它的移动速度太快,请尝试使用System.Threading.Thread.Sleep(milliseconds)
添加睡眠
答案 1 :(得分:0)
您是否完全确定在前两个记录之后是否符合IF标准?要查找的一件事是空格或其他字符串异常,例如数据库中的carraige返回...
行(“vn10”)。例如,ToString可能由于某种原因而是“a”而不是“a”。可能值得投入临时调试行,例如:
Throw New Exception("[" & Row("vn10").ToString & "]")
或检查一些错误失败的记录的长度。