Java Android SQLite3 не обновляет базу данных - PullRequest
0 голосов
/ 07 марта 2020

Команда обновления базы данных не работает для меня. База данных сохраняет старые значения после выполнения команды обновления.

Я использую SQLite в среде Android Java. Я использую вспомогательный класс Customer для заполнения элементов данных, которые я собираюсь обновить.

package com.cis2237.bingp4;

public class Customer {

    private int id;
    private String name;
    private String airline;
    private String status;
    private int miles;

    public Customer() {}

    public Customer(int id, String name, String airline, String status, int miles) {
        this.id = id;
        this.name = name;
        this.airline = airline;
        this.status = status;
        this.miles = miles;
    }

    public int getMiles() { return miles; }

    public void setMiles(int miles) { this.miles = miles; }

    public String getStatus() { return status; }

    public void setStatus(String status) { this.status = status; }

    public String getAirline() {
        return airline;
    }

    public void setAirline(String airline) {
        this.airline = airline;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

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

// Columns
public static final String COL_ID = "_id";
public static final String COL_NAME = "name";
public static final String COL_AIRLINE = "airline";
public static final String COL_STATUS = "status";
public static final String COL_MILES = "miles";

// Column Indexes
public static final int INDEX_ID = 0;
public static final int INDEX_NAME = INDEX_ID + 1;
public static final int INDEX_AIRLINE = INDEX_ID + 2;
public static final int INDEX_STATUS = INDEX_ID + 3;
public static final int INDEX_MILES = INDEX_ID + 4;


//  Edit a customer
public void updateCustomer(Customer customer) {
    ContentValues values = new ContentValues();
    values.put(COL_NAME, customer.getName());
    values.put(COL_AIRLINE, customer.getAirline());
    values.put(COL_STATUS, customer.getStatus());
    values.put(COL_MILES, customer.getMiles());
    mDb.update(TABLE_NAME, values,
            COL_ID + "=?", new String[]{String.valueOf(customer.getId())});
}

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

...