Android Studio上的错误,编译时:INSERT INTO Table不存在?

问题描述 投票:-1回答:1

[当我在做项目时,我需要数据库浏览器帮助程序的帮助,在这里进行

 CREATE TABLE `OrderDetailID` (
    `ID`    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    `ProductId` TEXT,
    `ProductName`   TEXT,
    `Quantity`  TEXT,
    `Price` TEXT,
    `Discount`  TEXT
);

但是当我想在我的应用程序上添加购物车时,它崩溃了,我的logcat显示如下:

android.database.sqlite.SQLiteException: no such table: OrderDetail (code 1 SQLITE_ERROR): , while compiling: INSERT INTO OrderDetail(ProductId,ProductName,Quantity,Price,Discount) VALUES('02','COCONUT PAO','1','1000','null');

并且错误显示在我的Database.java类上,>

public void addToCart(Order order) {
    SQLiteDatabase db = getReadableDatabase();
    String query = String.format("INSERT INTO OrderDetail(ProductId,ProductName,Quantity,Price,Discount) VALUES('%s','%s','%s','%s','%s');",
            order.getProductId(),
            order.getProductName(),
            order.getQuantity(),
            order.getPrice(),
            order.getDiscount());

    db.execSQL(query);
}

和FoodDetail.java

btnCart.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        new Database(getBaseContext()).addToCart(new Order(
                foodId,
                currentfood.getName(),
                numberButton.getNumber(),
                currentfood.getPrice(),
                currentfood.getDiscountmenuId()
        ));

        Toast.makeText(FoodDetail.this, "Added to cart", Toast.LENGTH_SHORT).show();
    }
});

经过大量搜索,我没有找到任何答案。

供您参考,这是我在Database.java类上的getCarts()方法

public List<Order> getCarts() {
    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    String[] sqlSelect = {"ProductId", "ProductName", "Quantity", "Price", "Discount"};
    String sqlTable = "OrderDetail";

    qb.setTables(sqlTable);
    Cursor c = qb.query(db, sqlSelect, null, null, null, null, null);

    final List<Order> result = new ArrayList<>();
    if (c.moveToFirst()) {
        do {
            result.add(new Order(c.getString(c.getColumnIndex("ProductId")),
                    c.getString(c.getColumnIndex("ProductName")),
                    c.getString(c.getColumnIndex("Quantity")),
                    c.getString(c.getColumnIndex("Price")),
                    c.getString(c.getColumnIndex("Discount"))

            ));
        } while (c.moveToNext());
    }
    return result;
}

[当我正在做一个项目时,我需要数据库浏览器帮助程序的帮助,在这里创建CREATE TABLE`OrderDetailID`((ID ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,`ProductId` TEXT,...

android database sqlite android-studio sql-insert
1个回答
1
投票

您创建OrderDetailID,但是您试图插入表OrderDetail

© www.soinside.com 2019 - 2024. All rights reserved.