Android SQLite更新行无效

时间:2013-05-29 15:45:58

标签: java android database sqlite android-sqlite

我正在尝试更新SQLite数据库中的一行。我的Database Helper类中的更新行方法如下

public long updateNote(long rowId, String title, String body) {
    ContentValues args = new ContentValues();
    args.put(KEY_TITLE, title);
    args.put(KEY_BODY, body);

    return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" +  rowId,
            null);
}

行更新如下:

     mDbHelper.open();
     mDbHelper.updateNote(mRowId, title, body);
     mDbHelper.close();

但是当我检索行时,数据与之前完全相同。我已经搜索过SO,但我找不到任何答案。数据将在以下游标中重试:

public Cursor fetchAllNotes() {
    return mDb.query(DATABASE_TABLE,
            new String[] { KEY_ROWID, KEY_TITLE, KEY_BODY, "link", "type",
                    KEY_DATE, KEY_TIME, KEY_DAY, KEY_YEAR }, null, null,
            null, null, null);

}

1 个答案:

答案 0 :(得分:4)

尝试更改方法,如:

public long updateNote(long rowId, String title, String body) {
    ContentValues args = new ContentValues();
    args.put(KEY_TITLE, title);
    args.put(KEY_BODY, body);

    return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=?",
            new String[]{rowId+""});
}

希望这有效。