Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android SQLite更新行不工作_Java_Android_Database_Sqlite_Android Sqlite - Fatal编程技术网

Java Android SQLite更新行不工作

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

我正在尝试更新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_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