0

特定の値が存在する行を更新する必要があります。はExecuteNonQuery0を返し、データベースが更新されていないことを意味します。デバッグをステップスルーすると、更新がヒットし、正しい値が含まれますが、更新は行われていません。

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 に答える