2013-06-21 3 views
2

다음과 같이 테이블의 단일 행을 업데이트하는 방법이 있습니다. 매회마다 다음 행은 update 메소드에서 1의 행 수를 리턴하지만 값은 갱신되지 않습니다. 행에 대해 이러한 일이 발생하면 항상 동일한 방식으로 동작합니다. 다른 행은 잘 업데이트됩니다.SQLite 업데이트가 영향을받은 행 수를 반환하지만 데이터가 업데이트되지 않습니다.

public void SetImageStatusToCompleted(String imageId) 
    { 
     String where = "id=?"; 
     String[] whereArgs = new String[] {String.valueOf(imageId)}; 
     ContentValues args = new ContentValues(); 
     args.put("status", 0); 
     int success; 
     try 
     { 
      db.beginTransaction(); 
      success = db.update("images", args, where, whereArgs); 
      db.setTransactionSuccessful(); 
     } 
     finally 
     { 
      db.endTransaction(); 
     } 
    } 

나는 알아낼 수 없다. 아무 예외도없고 성공의 가치는 항상 1 행이 업데이트되었음을 ​​나타내는 1입니다.

감사합니다.

+0

업데이트 후 값이 반환되지 않으므로 UI에서 반사를 볼 수 없지만 성공적으로 삽입되었습니다. – MDMalik

+0

@MDMalik - 나중에 테이블 및 상태를 쿼리하기 때문에 업데이트되지 않습니다. 주어진 이미지 기록에 대해 변경되지 않았습니다. – victory3k

답변

0

이 코드를 사용해 볼 수 있습니까? 그것은 나를 위해 일하고 더 사용하기 쉽습니다.

ContentValues values = new ContentValues(); 
values.put("Row", "value"); 
db.update("DBName", values, Condition or query ex: "Number='"+ mobile +"'",null); 
+0

이 구문을 시도했지만 여전히 동일한 동작을 나타냅니다. 대부분 상황은 좋지만 때마다 행이 업데이트되지 않게됩니다. – victory3k

0

문제점을 발견했습니다. 내 테이블 create 문에서 나는 _id 필드의 정의에서 AUTOINCREMENT를 놓쳤다. _id 필드에 대한 선택 커서에서 값이 반환 된 방법을 정확히 알지 못하지만 업데이트 할 행과 일치하지 않습니다.

AUTOINCREMENT에 추가하면 문제가 해결되었습니다.

감사합니다.

관련 문제