Я ожидаю, что сработает следующее:
Protected Sub btnUpdate_Click(ByVal sender As Object, ByVal e As EventArgs)
For Each row As GridViewRow In GridView6.Rows
' Selects the text from the TextBox
Dim selectedcheck As CheckBox = CType(row.FindControl("chkselect"), CheckBox)
If selectedcheck.Checked = True Then
Dim id As Label = CType(row.FindControl("id"), Label)
cmd.Parameters.Clear() '<---- Stop adding more and more parameters
cmd.Parameters.AddWithValue("@id", id.Text)
cmd.Parameters.AddWithValue("@compby", txtagent.Text)
cmd.Parameters.AddWithValue("@compdate", lbldate.Text)
cmd.Parameters.AddWithValue("@comments", txtcomments.Text)
cmd.CommandText = "dbo.updatetasks"
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
conn.Open()
cmd.ExecuteNonQuery() '<--- Don't use the asynchronous variant if you're not going to obey the contract
conn.Close()
End If
Next
End Sub
Вы бы получили хорошее исключение, сообщающее, что вы сделали неправильно, если бы использовали синхронный вариант ExecuteNonQuery
, иливыполнил контракт для асинхронных методов (где вам нужно вызвать EndExecuteNonQuery
, чтобы узнать результат вашего вызова SQL.