You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio SQLite报错:inventory表无quantity列,求解决方案

问题解决:SQLite插入数据提示缺少quantity列的错误

错误根源

你的IventoryDB.java中创建表的SQL语句有语法漏洞:定义quantity列时,列名和数据类型之间没加空格,导致实际生成的列名变成了quantitytext,而非预期的quantity,所以插入时会提示找不到该列。

错误代码行:

db.execSQL("create table " + InventoryTable.TABLE + " (" +
        InventoryTable.COL_ID + " integer primary key autoincrement, " +
        InventoryTable.COL_ITEM + " text, " +
        InventoryTable.COL_QTY + "text)");

修复方法

修改onCreate方法里的SQL语句,在InventoryTable.COL_QTY和"text"之间补上空格:

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table " + InventoryTable.TABLE + " (" +
            InventoryTable.COL_ID + " integer primary key autoincrement, " +
            InventoryTable.COL_ITEM + " text, " +
            InventoryTable.COL_QTY + " text)"); // 此处添加空格
}

生效步骤

修复后需要让数据库重建表,二选一即可:

  • 卸载当前APP后重新运行项目
  • 在AndroidManifest.xml中提高android:versionCode的值,触发onUpgrade方法删除旧表并重建

额外优化建议

  1. 因为_id设置了autoincrement,无需手动传入ID,可简化代码:
// 修改addItem方法
public void addItem(String item, String qty) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(InventoryDB.InventoryTable.COL_ITEM, item);
    values.put(InventoryDB.InventoryTable.COL_QTY, qty);
    db.insert(InventoryDB.InventoryTable.TABLE, null, values);
}

// 调用处去掉id参数
DB.addItem(itemName, itemQuantity);
// 同时删除Inventory.java中的private int id;变量
  1. 数量字段建议用整数类型存储,更符合业务逻辑:
// 表创建语句修改quantity类型为integer
InventoryTable.COL_QTY + " integer)");

// 修改addItem方法参数类型
public void addItem(String item, int qty) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(InventoryDB.InventoryTable.COL_ITEM, item);
    values.put(InventoryDB.InventoryTable.COL_QTY, qty);
    db.insert(InventoryDB.InventoryTable.TABLE, null, values);
}

// 调用处转换为整数
int itemQuantity = Integer.parseInt(addItemQuantity.getText().toString());
DB.addItem(itemName, itemQuantity);

内容的提问来源于stack exchange,提问作者novice_python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:27:39