Так что моя проблема довольно интересная. Я искал ответ и, к сожалению, ничего не помогает. Я разрабатывал приложение и столкнулся с небольшой проблемой. Сегодня мой коллега упомянул, что приложение должно позволить пользователям выбирать конкретную запись из базы данных, а затем редактировать ее. Поэтому я добавил следующий код:Android - SQLite - update()
_dbw.update(TABLE_CHRG_DATA, values, COLUMN_KEY + "=?", new String[] {recordNum});
Вопрос заключается в том, что вместо того, чтобы обновить запись, он добавляет новую запись, которую я думал, не должно произойти с обновлением().
В любом случае, мне интересно, что, черт возьми, здесь происходит, и очень понравится какая-то помощь. Я пробовал все, что мог, но код продолжает добавлять новую запись, а не редактировать существующую запись. Я думаю, что просто нужно второе мнение, хех.,
ТИА
Брэд.
@MylesBaker - Спасибо за быстрый ответ. _dbw - это SQLite db. Вот код: окончательный SQLiteDatabase _dbw = this.getWritableDatabase(); , Ive пробовал различные способы настройки строки кода из op, который, я думаю, действительно не должен иметь никакого значения. У меня есть 2 строки кода, которые либо создают новую запись, либо обновляют существующую запись. Во время отладки я вижу, что он обходит вставку и выполняет обновление, но при этом создается совершенно новая запись. Мне интересно, может ли это иметь какое-то отношение к ключу, который проходит мимо, но не видел никаких предупреждений или ошибок. –
Что такое возвращаемое значение '_dbw.update'? Он должен возвращать целое число затронутых записей. Я обеспокоен тем, что у вас может быть несколько экземпляров '_dbw'. В противном случае вы должны подтвердить предложение 'where',' COLUMN_KEY + "=?" '. –
'update()' * не может * добавлять записи (если у вас нет тригера, который делает это). Почему, по вашему мнению, в базе данных есть новая запись? –