0

我需要更新存在某个值的行。返回 0 表示数据库未ExecuteNonQuery更新。在调试中单步执行时,更新被命中并包含正确的值,但是没有进行任何更新。

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();
}
4

1 回答 1

5

丢失 sql 语句中参数名称周围的单引号。您不需要它们,它们使您的代码将您的参数占位符解释为简单的字符串文字。

然后删除 con.Close() 行。你也不需要那个;它被using块覆盖。

最后,您还可以考虑将已验证的列更改为简单的 DateTime 类型,而不是尝试将该数据存储为文本。

于 2013-02-01T16:51:28.477 回答