我有一个更新表中单行的方法,如下所示。现在每个行都会从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行已经更新。
谢谢!
答案 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纠正了问题。
谢谢!