Я пытаюсь вставить данные в локальное хранилище с помощью SQLite, но возникает ошибка E / SQLiteLog: (1) в таблице Корзина нет столбца с именем product_discount. Код базы данных sqlite:
public class DatabaseHandler extends SQLiteOpenHelper {
private static final String TAG = "DatabaseHandler";
private static final String DATABASE_NAME = "CartItemDetails";
private static final int DATABASE_VERSION = 4;
private static final String TABLE_CART = "Cart";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "product_name";
private static final String KEY_PRODUCT_ID = "product_id";
private static final String KEY_SELECTED_QUANTITY = "product_selected_quantity";
private static final String KEY_ITEM_PRICE = "product_price";
private static final String KEY_DISCOUNT_PRICE = "product_discount";
private static final String KEY_IMAGE_URLS = "product_image_urls";
private static final String KEY_BRAND_NAME = "product_brand";
public DatabaseHandler(@Nullable Context context) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
//Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CART_TABLE = "CREATE TABLE " + TABLE_CART + "("
+KEY_ID + "INTEGER PRIMARY KEY," + KEY_NAME + "TEXT" + KEY_PRODUCT_ID + "TEXT"
+ KEY_SELECTED_QUANTITY + "TEXT" + KEY_ITEM_PRICE + "TEXT" + KEY_DISCOUNT_PRICE + "TEXT"
+ KEY_IMAGE_URLS + "TEXT" + KEY_BRAND_NAME + "TEXT" +")";
db.execSQL(CREATE_CART_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CART);
// Create tables again
onCreate(db);
}
//Code to add the new CartItems
void addCartItems(CartDB cart){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME,cart.getItem_name());
values.put(KEY_PRODUCT_ID,cart.getItem_id());
values.put(KEY_SELECTED_QUANTITY,cart.getItem_quantity());
values.put(KEY_ITEM_PRICE,cart.getItem_price());
values.put(KEY_DISCOUNT_PRICE,cart.getItem_discount());
values.put(KEY_IMAGE_URLS,cart.getItem_url());
values.put(KEY_BRAND_NAME,cart.getItem_brand());
db.insert(TABLE_CART,null,values);
db.close();
Log.d(TAG, "addCartItems: Name" +cart +"to" + TABLE_CART);
}
Я пытался очистка хранилища изменила мою версию_базы_данных, имя и также попыталась удалить, как указано в Android SQLite проблема - таблица ... не имеет столбца с именем , но не смогла решить проблему. нужна помощь спасибо.
мой Logcat
2020-04-11 13:16:25.707 10878-10878/com.example.myconsumer E/SQLiteLog: (1) table Cart has no column named product_discount
2020-04-11 13:16:25.713 10878-10878/com.example.myconsumer E/SQLiteDatabase: Error inserting product_discount=0 product_id=HwdUQPb1nfKq549591Jg product_selected_quantity=1 product_price=100 product_brand=getting started product_image_urls=null product_name=test1 from {P:10878;U:10546}
android.database.sqlite.SQLiteException: table Cart has no column named product_discount (code 1 SQLITE_ERROR): , while compiling: INSERT INTO Cart(product_discount,product_id,product_selected_quantity,product_price,product_brand,product_image_urls,product_name) VALUES (?,?,?,?,?,?,?)