SQLite更新返回受影响的行数,但数据未更新

时间:2013-06-21 19:26:12

标签: android sqlite sql-update

我有一个更新表中单行的方法,如下所示。现在每个行都会从update方法返回一个行数,但该值不会更新。一旦发生这种情况,它将始终以相同的方式运行。其他行将更新正常。

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行已经更新。

谢谢!

2 个答案:

答案 0 :(得分:0)

你能试试这个代码吗?它对我有用,更易于使用。

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

答案 1 :(得分:0)

我发现了这个问题。在我的表创建语句中,我错过了_id字段定义中的AUTOINCREMENT。我不确切知道如何从_id字段的选择光标返回一个值,但它与我打算更新的行不对应。

添加AUTOINCREMENT纠正了问题。

谢谢!