I need to update a row where there exists a certain value. The ExecuteNonQuery returns a 0 meaning the database is not being updated. When stepping through in debug, the update is hit and contains the correct values, however no updates are being done.
string verifySql = @"UPDATE UserInfo SET Verified='@Verified'
WHERE UserID='@UserID'";
using (var con = newSqlConnection(
ConfigurationManager.ConnectionStrings["UserInfoDB"].ConnectionString))
using (var cmd = new SqlCommand(verifySql, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Verified", "Verified " + DateTime.Now);
cmd.Parameters.AddWithValue("@UserID", user.UserId);
Response.Write(cmd.ExecuteNonQuery());
con.Close();
}
Lose the single quotes around the parameter names in your sql statement. You don’t need them, and they’re making your code interpret your parameter placesholders as simple string literals.
Then remove the con.Close() line. You don’t need that either; it’s covered by the
usingblock.Finally, you might also consider changing your verified column to a simple DateTime type, rather than trying to store that data as text.