Функция обновления в Android SQLite не работает - PullRequest
4 голосов
/ 14 ноября 2011

В моем приложении мне нужно добавлять и редактировать данные в базе данных 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 ]

7 голосов
/ 14 ноября 2011

Возможно, проблема в операторе обновления. Попробуйте:

 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

И да, пройти через обновление public int (таблица String, значения ContentValues, String whereClause, String [] whereArgs) .

0 голосов
/ 14 ноября 2011

Ваша функция возвращает 1;это не нормально ... он должен вернуть ContentValues ​​cv

return db.update(DATABASE_TABLE, cv, KEY_ROWID+"="+rowId, null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...