Как устранить ошибку при вставке данных в базу данных SQLite? - PullRequest
0 голосов
/ 11 октября 2019

У меня есть проблема в моем проекте, и мое приложение всегда показывает «К сожалению, приложения остановились» при вставке данных в базу данных.

Я следую учебнику из Интернета

Вот мой код базы данных

@Override
public void onCreate(SQLiteDatabase db) {

    String CREATE_TBINVENTORY = "create table "
            + TABLE_INVENTORY+ "("
            + CLINVENTORY_BARCODE+ " varchar(15) primary key, "
            + CLINVENTORY_ARTICLE+ " varchar(25) not null, "
            + CLINVENTORY_DESCRIPTION+ " varchar(25) not null, "
            + CLINVENTORY_SIZE+ " varchar(4) not null, "
            + CLINVENTORY_QTY+ " int not null, "
            + CLINVENTORY_PRICE+ " int not null);";
    db.execSQL(CREATE_TBINVENTORY);

//memasukan data kedalam table Inventory

public void insertInventory(InventoryModel inventorymodel){

    ContentValues contentValues = new ContentValues();
    contentValues.put(CLINVENTORY_BARCODE, inventorymodel.get_barcodemodel());
    contentValues.put(CLINVENTORY_ARTICLE, inventorymodel.get_articlemodel());
    contentValues.put(CLINVENTORY_DESCRIPTION, inventorymodel.get_descriptionmodel());
    contentValues.put(CLINVENTORY_SIZE, inventorymodel.get_sizemodel());
    contentValues.put(CLINVENTORY_QTY, inventorymodel.get_qtymodel());
    contentValues.put(CLINVENTORY_PRICE, inventorymodel.get_pricemodel());
    db.insert(TABLE_INVENTORY,null,contentValues);
}

это модель, я использую метод mvc

private int qtymodel,pricemodel;
private String barcodemodel, articlemodel, descriptionmodel, sizemodel;

public InventoryModel(){
}

public InventoryModel(String barcodemodel, String articlemodel,String descriptionmodel,String sizemodel, int qtymodel, int pricemodel){
    this.barcodemodel = barcodemodel;
    this.articlemodel = articlemodel;
    this.descriptionmodel = descriptionmodel;
    this.sizemodel = sizemodel;
    this.qtymodel = qtymodel;
    this.pricemodel = pricemodel;
}

public String get_barcodemodel(){
    return barcodemodel;
}

public void set_barcodemodel(String barcodemodel){
    this.barcodemodel = barcodemodel;
}

public String get_articlemodel(){
    return articlemodel;
}

public void set_articlemodel(String articlemodel){
    this.articlemodel = articlemodel;
}

public String get_descriptionmodel(){
    return descriptionmodel;
}

public void set_descriptionmodel(String descriptionmodel){
    this.descriptionmodel = descriptionmodel;
}

public String get_sizemodel(){
    return sizemodel;
}

public void set_sizemodel(String sizemodel){
    this.sizemodel = sizemodel;
}

public int get_qtymodel(){
    return qtymodel;
}

public void set_qtymodel(int qtymodel){
    this.qtymodel = qtymodel;
}

public int get_pricemodel(){
    return pricemodel;
}

public void set_pricemodel(int pricemodel){
    this.pricemodel = pricemodel;
}

и это команда в кнопке сохранения

save.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        DBDataSource dbDataSource = new DBDataSource(getApplicationContext(), null, null, 1);

        barcode = barcodevalue.getText().toString();
        article = articlevalue.getText().toString();
        description = descriptionvalue.getText().toString();
        size = sizevalue.getSelectedItem().toString();
        qty = Integer.parseInt(qtyvalue.getText().toString());
        price = Integer.parseInt(pricevalue.getText().toString());

       InventoryModel inventorymodel = new InventoryModel(barcode,article,description,size,qty,price);

        dbDataSource.onOpen();
        dbDataSource.insertInventory(inventorymodel);
        dbDataSource.close();

        displayToast("Data Berhasil Disimpan");

    }
});

Я надеюсь, что все вы можете помочь мне решить эту проблему

...