Почему в Android не обновляется база данных SQLite?

#java #android #sqlite

#java #Android #sqlite

Вопрос:

Я пытаюсь обновить строку с помощью:

myDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME "=" mName, null);

но я получаю следующую ошибку:

ОШИБКА / Database(282): Ошибка при обновлении persons_name=Bob с помощью UPDATE peopleTable SET persons_name=? ГДЕ persons_name=Bob

Я использую следующий код для попытки обновления:

 public void updateEntry(String mName) throws SQLException {

    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_NAME, mName);
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME   "="   mName, null);

}
  

Я просмотрел другие ответы, которые кажутся похожими на эту проблему, но я не нашел чего-то окончательного, что решает проблему, с которой я сталкиваюсь. Похоже, это как-то связано с переменными, но я могу совершенно ошибаться..

Комментарии:

1. вместо KEY_NAME «=» mName попробуйте использовать KEY_NAME » like » mName или KEY_NAME «=» «‘» mName «‘» или что-то в этом роде

Ответ №1:

Вы не заключаете свою строку в кавычки. Вам лучше сделать что-то вроде этого:

 ourDatabase.update(DATEABASE_TABLE, cvUpdate, KEY_NAME   "= ?", new String[]{mName});
  

при использовании приведенного выше параметра он автоматически заключит его в одинарные кавычки, если тип является строкой.

Ответ №2:

«persons_name=Bob», вероятно, должно быть «persons_name=’Bob'», так что попробуйте:

 ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME   "='"   mName   "'", null);