Обновите определенную строку в SQLite для Android - PullRequest
0 голосов
/ 16 января 2012

Я пытаюсь обновить определенную строку, которая использует auto_increment в качестве первичного ключа. По сути, я инициализирую таблицу в одном упражнении и хочу завершить таблицу в другом. Итак, я использую функцию обновления, чтобы сделать это. Однако, когда я регистрируюсь, чтобы увидеть, сколько строк затронуло, я получаю 0 обратно. Вот мой код:

public void updateValue(String updatedValue){
String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";
    ContentValues values = new ContentValues();
    values.put(val, updatedValue);
    db = this.getWritableDatabase();

    int rows= db.update(myTable, values, strFilter, null);
    Log.d(LOG_TAG, "The change has affected " + rows
            + " rows.");
    db.close();

}

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Используйте

"String query = SELECT seq from SQLITE_SEQUENCE WHERE name = \'"+tableName+"\'";

вместо

SELECT last_insert_rowid()
0 голосов
/ 16 января 2012

Я думаю, что проблема в следующей строке:

String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";

Это должно быть написано, я думаю, следующим образом:

String strFilter = primaryKey + "=" + "(SELECT last_insert_rowid())";

Но вы должны контролировать возврат этой части (SELECT last_insert_rowid()), если она возвращает последнюю вставленную строку или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...