В моем приложении для Android: все, что я делал, это добавлял новый столбец под названием «режим оплаты», и у меня всегда нет столбца с именем «способ оплаты».Что здесь не так?
android.database.sqlite.SQLiteException: table order_details has no column named order_details_payment_mode (code 1):
Ниже приведены имена полей моей таблицы: я добавил режим оплаты перед именем пользователя.
private static final String TABLE_ORDER_DETAILS = "order_details";
private static final String KEY_ORDERSNO_LOCAL = "sno";
private static final String KEY_ORDER_DETAILS_ORDERID_LOCAL = "order_id";
private static final String KEY_ORDER_DETAILS_ID_LOCAL = "order_details_productid";
private static final String KEY_ORDER_DETAILS_NAME_LOCAL = "order_details_productname";
private static final String KEY_ORDER_DETAILS_IMAGE_LOCAL = "order_details_productimage";
private static final String KEY_ORDER_DETAILS_PRICE_LOCAL= "order_details_productprice";
private static final String KEY_ORDER_DETAILS_PLAN_LOCAL= "order_details_productplan";
private static final String KEY_ORDER_DETAILS_QTYPERDAY_LOCAL= "order_details_qtyperday";
private static final String KEY_ORDER_DETAILS_TOTALQTY_LOCAL= "order_details_totalqty";
private static final String KEY_ORDER_DETAILS_REMAINQTY_LOCAL= "order_details_remainqty";
private static final String KEY_ORDER_DETAILS_TOTALPRICE= "order_details_totalamount";
private static final String KEY_ORDER_DETAILS_STARTDATE_LOCAL= "order_details_startdate";
private static final String KEY_ORDER_DETAILS_STATUS= "order_details_status";
private static final String KEY_ORDER_DETAILS_ADHOC_START_LOCAL= "order_details_adhoc_start";
private static final String KEY_ORDER_DETAILS_ADHOC_QTY_LOCAL= "order_details_adhoc_qtyperday";
private static final String KEY_ORDER_DETAILS_PAUSE_LOCAL= "order_details_pause";
private static final String KEY_ORDER_DETAILS_PAUSESTARTDATE_LOCAL= "order_details_pausestartdate";
private static final String KEY_ORDER_DETAILS_PAUSEENDDATE_LOCAL= "order_details_pauseenddate";
private static final String KEY_ORDER_DETAILS_TRANSACTIONORDERID_LOCAL= "order_details_transactionorderid";
private static final String KEY_ORDER_DETAILS_PAYMENT_MODE_LOCAL = "order_details_payment_mode";
private static final String KEY_ORDER_DETAILS_USERNAME_LOCAL= "order_details_username";
Вот код для создания таблицы.
String CREATE_TABLE_ORDER_DETAILS = "CREATE TABLE IF NOT EXISTS " + TABLE_ORDER_DETAILS + "("
+ KEY_ORDERSNO_LOCAL + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_ORDER_DETAILS_ORDERID_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_ID_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_NAME_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_IMAGE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PRICE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PLAN_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_QTYPERDAY_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_TOTALQTY_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_REMAINQTY_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_TOTALPRICE + " TEXT,"
+ KEY_ORDER_DETAILS_STARTDATE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_STATUS + " TEXT,"
+ KEY_ORDER_DETAILS_ADHOC_START_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_ADHOC_QTY_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PAUSE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PAUSESTARTDATE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PAUSEENDDATE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_TRANSACTIONORDERID_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_PAYMENT_MODE_LOCAL + " TEXT,"
+ KEY_ORDER_DETAILS_USERNAME_LOCAL + " TEXT"
+ ")";
db.execSQL(CREATE_TABLE_ORDER_DETAILS);
Журнал ошибок:
09-11 07:20:23.641 17703-17703/com.ylg.orderapp E/SQLiteLog: (1) table order_details has no column named order_details_payment_mode
09-11 07:20:23.646 17703-17703/com.ylg.orderapp E/SQLiteDatabase: Error inserting order_details_totalqty=70 order_details_productplan=7 order_details_pause=0 order_details_productimage=
order_details_productname=1 litre bottle order_details_productprice=90 order_id=1 order_details_remainqty=0 order_details_status=CANCEL order_details_username=+441234567890 order_details_qtyperday=10 order_details_productid=1 order_details_totalamount=6300.0 order_details_pauseenddate=0 order_details_startdate=16/8/2018 order_details_pausestartdate=0 order_details_payment_mode=PPI order_details_transactionorderid=123456789015224 order_details_adhoc_start=0 order_details_adhoc_qtyperday=0
android.database.sqlite.SQLiteException: table order_details has no column named order_details_payment_mode (code 1): , while compiling: INSERT INTO order_details(order_details_totalqty,order_details_productplan,order_details_pause,order_details_productimage,order_details_productname,order_details_productprice,order_id,order_details_remainqty,order_details_status,order_details_username,order_details_qtyperday,order_details_productid,order_details_totalamount,order_details_pauseenddate,order_details_startdate,order_details_pausestartdate,order_details_payment_mode,order_details_transactionorderid,order_details_adhoc_start,order_details_adhoc_qtyperday) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
at com.ylg.db.OrderDB.setorderdetails(OrderDB.java:1514)
at com.ylg.orderapp.ProductDetailsList$5.onSuccess(ProductDetailsList.java:661)
at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:152)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
ЗАПИСЬ СОХРАНИТЬ И ОБНОВИТЬ ДЕТАЛИ ЗАКАЗА:
https://textuploader.com/dv14k
Обновление: в соответствии с рекомендациями MikeT Я зарегистрировал createTable, чтобы увидеть, что происходит: Ниже приведен текст:
CREATE TABLE IF NOT EXISTS order_details(sno INTEGER PRIMARY KEY AUTOINCREMENT,order_id TEXT,order_details_productid TEXT,order_details_productname TEXT,order_details_productimage TEXT,order_details_productprice TEXT,order_details_productplan TEXT,order_details_qtyperday TEXT,order_details_totalqty TEXT,order_details_remainqty TEXT,order_details_totalamount TEXT,order_details_startdate TEXT,order_details_status TEXT,order_details_adhoc_start TEXT,order_details_adhoc_qtyperday TEXT,order_details_pause TEXT,order_details_pausestartdate TEXT,order_details_pauseenddate TEXT,order_details_transactionorderid TEXT,order_details_payment_mode TEXT,order_details_username TEXT)
Обновление 2: Запрос, используемый в упражнении:
if(logdb.checkOrderID(orderID) == 0)
{ logdb.setorderdetails(orderID, orderProductID, orderProductNAME, orderProductIMAGE, orderProductPRICE, orderProductPLAN, orderProductPERDAY, orderProductTOTALQTY, orderProductRemainQTY, orderProductTOTALAMOUNT, orderProductSTARTDATE,orderProductSTATUS, orderProductADHOCSTART, orderProductADHOCQTY, orderProductPAUSED, orderProductPAUSEDSTART, orderProductPAUSEDEND, orderProductTransactionOrderID, orderProductPaymentType, orderProductUSER);
}
else
{
logdb.updateorderdetails(orderID, orderProductID, orderProductNAME, orderProductIMAGE, orderProductPRICE, orderProductPLAN, orderProductPERDAY, orderProductTOTALQTY, orderProductRemainQTY, orderProductTOTALAMOUNT, orderProductSTARTDATE, orderProductSTATUS, orderProductADHOCSTART, orderProductADHOCQTY, orderProductPAUSED, orderProductPAUSEDSTART, orderProductPAUSEDEND, orderProductTransactionOrderID, orderProductPaymentType, orderProductUSER); }
, поэтому я очистил кеш, данные приложения, удалил, изменил версию, изменил версию приложения, очистил кеш в студии, но все по-прежнему.
Я не могу определить синтаксическую ошибкуВот.
Возможно, кто-то может помочь мне найти ошибку?
Спасибо!