Функция обновления в Android SQLite не работает
В моем приложении мне нужно добавлять и редактировать данные в базе данных SQLite. Когда я обновляю данные, приложение не выдает никаких ошибок, но моя база данных не обновляется. Вот моя функция обновления. Я ищу в Интернете два дня, но не могу этого сделать. Пожалуйста, помогите мне.
public long updateEvent(String id, String title, String description, String reminder, String alarm, Date date) {
try {
int rowid = Integer.parseInt(id);
Log.i("com.eventmanager", "insert Event");
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datestring = formatter.format(date);
ContentValues cv = new ContentValues();
cv.put(KEY_TITLE, title);
cv.put(KEY_DESCRIPTION, description);
cv.put(KEY_REMINDER, reminder);
cv.put(KEY_ALARM, alarm);
cv.put(KEY_DATE, datestring);
myDB.beginTransaction();
Log.i("com.eventmanager","SQL UPDATE ");
myDB.update(DATABASE_TABLE, cv, KEY_ROWID + "=" + rowid, null);
myDB.setTransactionSuccessful();
myDB.endTransaction();
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}
Заранее спасибо!!
2 ответа
Решение
Может быть проблема в обновлении, попробуйте:
long i = myDB.update(DATABASE_TABLE, cv, KEY_ROWID + "=?", new String[]{rowid});
if(i>0)
return 1; // 1 for successful
else
return 0; // 0 for unsuccessful
И да, пройти через публичную функцию обновления in t (таблица String, значения ContentValues, String whereClause, String[] whereArgs).
Ваша функция возвращает 1; это не нормально... он должен вернуть ContentValues cv
return db.update(DATABASE_TABLE, cv, KEY_ROWID+"="+rowId, null)