При попытке обновить запись для одной из моих записей я использую этот код
private void UpdateCattleRecord(UpdateCattleRecord updateRecord){
mDB.beginTransaction();
String where = "_ID=";
String[] RecordToUpdate = {Cattle._ID};
Toast.makeText(this,"Updating Animal "+ RecordToUpdate, Toast.LENGTH_LONG).show();
try {
ContentValues CattleFieldsToUpdate = new ContentValues();
CattleFieldsToUpdate.put(Cattle.CATTLE_ANIMALID,updateRecord.getCattleName());
CattleFieldsToUpdate.put(Cattle.CATTLE_TYPE, updateRecord.getCattleType());
CattleFieldsToUpdate.put(Cattle.CATTLE_LOCATION, updateRecord.getCattleLocation());
CattleFieldsToUpdate.put(Cattle.CATTLE_DOB, updateRecord.getCattleDob());
CattleFieldsToUpdate.put(Cattle.CATTLE_DAM, updateRecord.getCattleDam());
CattleFieldsToUpdate.put(Cattle.CATTLE_SEX, updateRecord.getCattleSex());
mDB.update(Cattle.CATTLE_TABLE_NAME,CattleFieldsToUpdate, where, RecordToUpdate);
mDB.setTransactionSuccessful();
} finally {
mDB.endTransaction();
}
}
Мой журнал показывает
Возвращена база данных тегов sqlite: код ошибки = 1, msg = near "=": синтаксическая ошибка
После изучения этого, я думаю, что у меня все в нужном месте, но, очевидно, я не,
когда я смотрю на следующую ошибку в журнале, она, конечно, отображается красным цветом и показывает все правильные данные,
03-27 15: 15: 29.291: E / База данных (12011): ошибка обновления date_of_birth = 27 марта 2012 г. Животный тип = Пол теленка = F местоположение = Восточная плотина = 601 animal_id = 601A с использованием ОБНОВЛЕНИЯ крупного рогатого скота SET date_of_birth = ?, animaltype = ?, sex = ?, location = ?, dam = ?, animal_id =? ГДЕ _ID =
У меня явно есть проблема со значением _ID, но я не могу найти его. Может кто-нибудь указать, где моя синтаксическая ошибка?
Обновление
Проблема возникла из-за того, что я не смог передать фактическое значение записи (_ID), которую я хотел обновить. Как только я передал это в качестве параметра моей функции updaterecords, обновление пошло в соответствии с графиком.
Спасибо за ввод, это помогло мне сузить то, что я делал неправильно.