Java Android SQLite更新行不工作
我正在尝试更新SQLite数据库中的一行。我的数据库助手类中的updaterow方法如下Java Android SQLite更新行不工作,java,android,database,sqlite,android-sqlite,Java,Android,Database,Sqlite,Android Sqlite,我正在尝试更新SQLite数据库中的一行。我的数据库助手类中的updaterow方法如下 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_T
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();
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);
}
但是当我检索行时,数据与以前完全相同。我已经找过了,但找不到任何答案。在如下光标中检索数据:
mDbHelper.open();
mDbHelper.updateNote(mRowId, title, body);
mDbHelper.close();
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);
}
尝试更改方法,如:
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+""});
}
希望这能奏效。尝试更改方法,如:
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+""});
}
希望这能起作用。最好使用参数化查询,因为数据库可以优化它们以获得更好的性能,但它不会改变任何东西。+1它现在可以工作了,已经在这方面停留了好几天,但我不得不做rowId=rowId+1;在ContentValues语句之前。您应该编辑您的答案,以包括其他人的答案,谢谢:DIt最好使用参数化查询,因为数据库可以优化它们以获得更好的性能,但它不会改变任何事情。+1它现在可以工作了,已经在这方面停留了几天,但我必须执行rowId=rowId+1;在ContentValues语句之前。您应该编辑您的答案,以包括其他人的答案,谢谢:D