2013-02-01 3 views
0

특정 값이있는 행을 업데이트해야합니다. 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(); 
} 

답변

5

SQL 문에서 매개 변수 이름 주위에 작은 따옴표가 없어집니다. 매개 변수를 필요로하지 않으며 코드에서 매개 변수 자리 표시자를 간단한 문자열 리터럴으로 해석하게 만듭니다.

그런 다음 con.Close() 줄을 제거하십시오. 당신은 그것도 필요하지 않습니다. 그것은 using 블록에 의해 보호됩니다.

마지막으로 데이터를 텍스트로 저장하는 대신 확인 된 열을 간단한 DateTime 형식으로 변경하는 것도 고려해 볼 수 있습니다.

관련 문제