Android sqlite缺少列

Android sqlite缺少列,android,sqlite,Android,Sqlite,我的SQLite数据库缺少一个我知道存在的列。我将无法从Android Emulator中提取数据库,因为在没有大量代码重写的情况下,无法使用Emulator填充数据库 logcat returnssqlite returned:error code=1,msg=table items在向该表添加项时没有名为checkedout的列。下面是表声明,下面是插入函数。我在什么地方拼写checkedout不一致吗 static final String CREATE_ITEM_TABLE ="cre

我的SQLite数据库缺少一个我知道存在的列。我将无法从Android Emulator中提取数据库,因为在没有大量代码重写的情况下,无法使用Emulator填充数据库

logcat returns
sqlite returned:error code=1,msg=table items在向该表添加项时没有名为checkedout的列。下面是表声明,下面是插入函数。我在什么地方拼写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);
    }

}

抱歉,我似乎无法将此作为评论,因此我将其作为回答:

我假设您使用早期版本的程序创建了表,其中没有“checkedout”列。 现在不会重新创建该表,因为在查询中包含“IF not EXISTS”


试着先把桌子移走

抱歉,我似乎无法将此作为评论,因此我将其作为回答:

我假设您使用早期版本的程序创建了表,其中没有“checkedout”列。 现在不会重新创建该表,因为在查询中包含“IF not EXISTS”


试着先把桌子移走

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

+按键数量+文本,“
+键\u CHECKEDOUT+“整数”
+ ");";

应该是

+按键数量+文本,“
+键\u CHECKEDOUT+“整数”
+ ");";


叹息

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

+按键数量+文本,“
+键\u CHECKEDOUT+“整数”
+ ");";

应该是

+按键数量+文本,“
+键\u CHECKEDOUT+“整数”
+ ");";


叹气

结账表和过去项目表的定义是否相同?是的。签出表将经常被清除和删除。在DDMS透视图“打开文件资源管理器”选项卡“查找您的数据库”、“打开光盘”中,在达到其他限制之前,“过去的项目”表将增长很多,并且永远不会被清除,并签入例如SQLite Browser数据库结构哪个insert调用产生错误?@Mike在实际设备上数据文件夹不显示任何内容。签出表和过去项目表是否定义相同?是。签出表将经常被清除和删除。在DDMS透视图“打开文件资源管理器”选项卡中找到您的数据库、拖动光盘并签入例如SQLite浏览器数据库结构哪个insert调用会产生错误?@Mike在真实设备上数据文件夹不显示任何内容之前,过去的\u item \u表将增长很多,并且永远不会被清除。