我需要更新存在特定值的行.该ExecuteNonQuery返回0这意味着数据库未更新.在调试中单步执行时,将触发更新并包含正确的值,但不会进行任何更新.
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();
}
Run Code Online (Sandbox Code Playgroud)
丢失sql语句中参数名称周围的单引号.你不需要它们,并且它们使你的代码将你的参数placesholders解释为简单的字符串文字.
然后删除con.Close()行.你也不需要; 它被using块覆盖了.
最后,您还可以考虑将已验证的列更改为简单的DateTime类型,而不是尝试将该数据存储为文本.
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |