2

SQLite データベースの行を更新しようとしています。データベース ヘルパー クラスの更新行メソッドは次のとおりです。

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);

}
4

1 に答える 1

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+""});
}

これがうまくいくことを願っています。

于 2013-05-29T15:54:44.323 に答える