2

我有一种方法可以更新表中的单行,如下所示。每隔一段时间,就会有一些行从更新方法返回行数 1,但该值不会更新。一旦连续发生这种情况,它将始终以相同的方式运行。其他行会更新就好了。

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 行。

谢谢!

4

2 回答 2

0

你可以试试这个代码吗?它对我有用,而且更易于使用。

ContentValues values = new ContentValues();
values.put("Row", "value");
db.update("DBName", values, Condition or query ex: "Number='"+ mobile +"'",null);
于 2013-06-22T02:37:26.313 回答
0

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

添加 AUTOINCREMENT 解决了这个问题。

谢谢!

于 2013-06-28T12:45:21.003 回答