Это правильный запрос в android studio для SQLite? - PullRequest
1 голос
/ 28 апреля 2020
db.rawQuery("UPDATE " + TABLE_MAIN + " SET " + COL_3_MAIN + " = '" + updatedTime + "' , " + COL_5_MAIN + " = " + COL_5_MAIN + " - 1  WHERE " + COL_1_MAIN + " = "+ ID ,null);

Я отлаживаю свое приложение, но не знаю, почему этот запрос не работает?

updatedTime - строка, поэтому я также ставлю одинарные кавычки (') рядом с ней.

Он не выдает никаких ошибок во время выполнения или отладки, но обновление не происходит !!!

Я вручную запускаю запрос в базе данных SQLite, и ошибки нет. Обновление завершено.

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Вы используете «rawQuery» для запуска обновления. Он используется для выбора данных и возвращает курсор, который необходимо использовать для получения результатов вашего запроса.

Чтобы выполнить ОБНОВЛЕНИЕ, вы можете использовать принятый ответ или использовать «exe c* 1006». * "для выполнения ОБНОВЛЕНИЯ.

Возникает путаница, поскольку разработчики баз данных, как правило, используют термин" запрос "для применения к любому типу оператора базы данных, будь то изменение или получение данных.

1 голос
/ 28 апреля 2020

Простые логики c

    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues data = new ContentValues();
    data.put("UpdateColumnName", "New_value");
    db.update("TableName", data, "PrimaryColumnName" + " = "+id , null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...