当我在做一个项目时,我需要数据库浏览器助手的帮助,我在哪里做这个
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;
}