Asp.net 更新存在特定值的数据库行
我需要更新存在某个值的行。Asp.net 更新存在特定值的数据库行,asp.net,sql,Asp.net,Sql,我需要更新存在某个值的行。ExecuteNonQuery返回一个0,表示数据库没有更新。在调试中单步执行时,会命中更新并包含正确的值,但不会执行任何更新 string verifySql = @"UPDATE UserInfo SET Verified='@Verified' WHERE UserID='@UserID'"; using (var con = newSqlConnection( ConfigurationManager.ConnectionStrings["UserInfoD
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();
}
丢失sql语句中参数名称周围的单引号。您不需要它们,它们让您的代码将参数placesholders解释为简单的字符串文字 然后删除con.Close()行。你也不需要这样;它包含在
using
块中
最后,您还可以考虑将已验证的列更改为简单的DATETIME类型,而不是试图将该数据存储为文本。
在SQL语句中的参数名周围丢失单引号。您不需要它们,它们让您的代码将参数placesholders解释为简单的字符串文字
然后删除con.Close()行。你也不需要这样;它包含在using
块中
最后,您也可以考虑将已验证的列更改为简单的DeaTimeType,而不是尝试将该数据存储为文本。