Android的SQLite的缺失列缺失、Android、SQLite

2023-09-07 02:29:34 作者:゛未来只靠自己つ

我的SQLite数据库丢失,我知道存在一列。我将不能够拉从Android模拟器的数据库,因为没有办法有没有实质性的code重写模拟器来填充它。

logcat的回报源码返回:错误code = 1,味精=表中的项目还没有列名为签出版当我将项目添加到该表中。下面是表声明,下面即是插入功能。难道我拼签出版不一致的地方?

 静态最后弦乐CREATE_ITEM_TABLE =创建表,如果不存在+ 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 +整数
        +);;



//存储项
众长storeNewItem(串店,因维人的字符串,字符串的产品,
        字符串的价格,重量字符串,字符串类,串数量,INT签出版){
    ContentValues​​ initialValues​​ =新ContentValues​​();
    initialValues​​.put(KEY_STORE,专卖店);
    initialValues​​.put(KEY_INVID,因维);
    initialValues​​.put(KEY_PRODUCT,产品);
    initialValues​​.put(KEY_WEIGHT,价格);
    initialValues​​.put(KEY_CATEGORY,体重);
    initialValues​​.put(KEY_QUANTITY,数量);
    initialValues​​.put(KEY_CHECKEDOUT,签出版); //以防万一我要存储这些项目,但服务器应该知道

    如果(签出版== 0)
    {
        返回sqlDb.insert(CHECKOUT_TABLE,空,initialValues​​);
    }
    否则//如果签出版==真
    {
        返回sqlDb.insert(PAST_ITEM_TABLE,空,initialValues​​);
    }

}
 

解决方案

答案是,最后一列没有在声明中空格

+ KEY_QUANTITY +TEXT         + KEY_CHECKEDOUT +整数         +);;

应该是

+ KEY_QUANTITY +TEXT         + KEY_CHECKEDOUT +整数         +);

叹息的

My SQLite database is missing a column which I know exists. I will not be able to pull the database from the Android Emulator, because there is no way to populate it with the emulator without substantial code rewrite.

android学习十一 android的SQLite数据库的使用

logcat returns sqlite returned: error code = 1, msg = table items has no column named checkedout when I add an item to this table. Below is the table declaration, and below that is the insert function. Do I spell checkedout inconsistently somewhere?

 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);
    }

}

解决方案

the answer was that the last column did not have a space in the declaration

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

should have been

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

sigh