Как совершить в SQLite Android? - PullRequest
       21

Как совершить в SQLite Android?

0 голосов
/ 24 января 2019

Я хочу обновить таблицу sqlite в своем приложении, но она не работает.Это мой код:

public boolean updateTable(Employee emp) {
    String idEmp = emp.getId();
    SQLiteDatabase db = this.getWritableDatabase();
    db.beginTransaction();
    try {
        ContentValues contentValues = new ContentValues();
        contentValues.put(Employee.COLUMN_ADDRESS,emp.getAddress());
        contentValues.put(Employee.COLUMN_CODE_CITY,emp.getCodeCity());
        contentValues.put(Employee.COLUMN_COMPANY_CODE,emp.getCompanyCode());
        long result = db.update(Employee.TABLE_NAME, contentValues, "ID = ?",new String[] {idEmp});
        if (result == -1) {
            return false;
        } else {
            db.setTransactionSuccessful();
            return true;
        }
    } finally {
        db.endTransaction();
    }
}

У вас есть идеи, как это исправить?

1 Ответ

0 голосов
/ 25 января 2019

Ваш код, кажется, в порядке, за исключением нескольких проблем, которые могут запутать вопросы.

То есть обновление никогда не вернет -1, оно вернет 0 (ничего не обновлено) или положительное число (количество обновленных строк). Как таковой ложный никогда не будет возвращен.

Другая проблема в том, что вы ловите все исключения и ничего не делаете. и потенциально скрывая полезную информацию.

Однако я полагаю, что ваша проблема заключается в том, что ваше обновление на самом деле не обновляется (не соответствует идентификатору), а возвращает true вместо false, поэтому не фиксация завершается неудачей, а просто то, что обновление не было выполнено.

Изменение if (result == -1) { на if (result == 0) { вернет более показательный результат.

...