#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);