Android sqlite отсутствует столбец - PullRequest
0 голосов
/ 14 ноября 2011

В моей базе данных SQLite отсутствует столбец, который, как я знаю, существует. Я не смогу вытащить базу данных из эмулятора Android, потому что нет способа заполнить ее эмулятором без существенной перезаписи кода.

logcat возвращает sqlite returned: error code = 1, msg = table items has no column named checkedout, когда я добавляю элемент в эту таблицу. Ниже приведено объявление таблицы, а ниже - функция вставки. Неужели я где-то непоследовательно пишу "Оформить заказ"?

 static final String CREATE_ITEM_TABLE ="create table if not exists "+CHECKOUT_TABLE+" ("
        + KEY_ROWID + " INTEGER PRIMARY KEY,"
        + KEY_STORE +" TEXT,"
        + KEY_INVID + " TEXT,"
        + KEY_PRODUCT + " TEXT,"
        + KEY_PRICE + " TEXT,"
        + KEY_WEIGHT + " TEXT,"
        + KEY_CATEGORY + " TEXT,"
        + KEY_QUANTITY + " TEXT,"
        + KEY_CHECKEDOUT + "INTEGER"
        + ");";



//store item
public long storeNewItem(String store, String invid, String product, 
        String price, String weight, String category, String quantity, int checkedout) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_STORE, store);
    initialValues.put(KEY_INVID, invid);
    initialValues.put(KEY_PRODUCT, product);
    initialValues.put(KEY_WEIGHT, price);
    initialValues.put(KEY_CATEGORY, weight);
    initialValues.put(KEY_QUANTITY, quantity);
    initialValues.put(KEY_CHECKEDOUT, checkedout); //just in case I want to store these items, but server should know

    if(checkedout==0)
    {
        return sqlDb.insert(CHECKOUT_TABLE, null, initialValues);
    }
    else //if checkedout==true
    {
        return sqlDb.insert(PAST_ITEM_TABLE, null, initialValues);
    }

}

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

ответ был таков: в последнем столбце не было пробела в объявлении

+ KEY_QUANTITY + " TEXT," + KEY_CHECKEDOUT + "INTEGER" + ");";

должно было быть

+ KEY_QUANTITY + " TEXT," + KEY_CHECKEDOUT + " INTEGER" + ");";

вздыхает

1 голос
/ 14 ноября 2011

Извините, мне кажется, что я не могу написать это как комментарий, поэтому я записал его как ответ:

Я предполагаю, что вы создали таблицу с более ранней версией вашей программы, гдене было столбца «оформлено».Теперь таблица не воссоздана, потому что вы включили «ЕСЛИ НЕ СУЩЕСТВУЕТ» в свой запрос.

Попробуйте сначала удалить таблицу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...