Java Sqlite数据库:Id在android中未自动递增

Java Sqlite数据库:Id在android中未自动递增,java,android,sqlite,android-sqlite,auto-increment,Java,Android,Sqlite,Android Sqlite,Auto Increment,我已经在我的应用程序中创建了一个本地数据库。我正在使用SQLite数据库进行同样的操作。我使用了“id”作为自动递增列,但问题是“id”不是自动递增的。它总是显示0。我什么都试过了,但都没有成功。请帮忙 代码: 向表中插入数据 ModelInventory modelInventory = new ModelInventory(); modelInventory.setItemName(etItemName.getText().toString()); modelInventory.setIte

我已经在我的应用程序中创建了一个本地数据库。我正在使用SQLite数据库进行同样的操作。我使用了“id”作为自动递增列,但问题是“id”不是自动递增的。它总是显示0。我什么都试过了,但都没有成功。请帮忙

代码:

向表中插入数据

ModelInventory modelInventory = new ModelInventory();
modelInventory.setItemName(etItemName.getText().toString());
modelInventory.setItemAmount(Float.parseFloat(etAmount.getText().toString()));
modelInventory.setExpiryDate(etExpiryDate.getText().toString());
modelInventory.setRipeDate(etRipeDate.getText().toString());
modelInventory.setLocketQty(0);
dbHelper.addInventory(modelInventory);
数据库代码:

public void addInventory(ModelInventory modelInventory) {
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();

    ContentValues newValues = new ContentValues();
    newValues.put(KEY_ITEM_ID, modelInventory.getItemId());
    newValues.put(KEY_ITEM_NAME, modelInventory.getItemName());
    newValues.put(KEY_ITEM_AMOUNT, modelInventory.getItemAmount());
    newValues.put(KEY_RIPE_DATE, modelInventory.getRipeDate().toString());
    newValues.put(KEY_EXPIRY_DATE, modelInventory.getExpiryDate().toString());
    newValues.put(KEY_IS_LOCKED_ITEM, modelInventory.getLockedItem());
    newValues.put(KEY_QTY_LOCKED, modelInventory.getLocketQty());

    sqLiteDatabase.insert(TABLE_INVENTORY, null, newValues);
    sqLiteDatabase.close();
}

正如SqlLite文档中提到的那样,无需在SqlLite中声明自动增量

声明为整数主键的列将自动递增

更新

 newValues.put(KEY_ITEM_ID, modelInventory.getItemId());
这里
modelnentory.getItemId()
返回0(我假设您在modelnentory类中将ItemId声明为整数),因此您需要传递空值,如


代码的第一个问题是,在创建表时,使用3个变量作为列的名称,如:
KEY\u-ING\u-ID
KEY\u-ING\u-NAME
KEY\u-ING\u-AMOUNT
在向表中插入数据时,使用以下列名:
KEY\u ITEM\u ID
KEY\u ITEM\u NAME
KEY\u ITEM\u AMOUNT
KEY\u成熟日期
KEY\u到期日期
KEY\u已锁定项
KEY\u数量

那么,如何通过为7列提供可能具有不同名称的值,将数据插入到一个包含3列的表中呢 第二个问题是,如果希望列的行为类似于
自动递增
,则在插入新行时必须为其赋值。
系统将提供该值。
因此,删除这一行:

newValues.put(KEY_ITEM_ID, modelInventory.getItemId());

如何插入数据请将该代码粘贴到dbhelper.addInventory(modelInventory);此方法的邮政编码。实际将数据插入SQLLite的位置可能需要一些时间并阅读以下内容:
 newValues.put(KEY_ITEM_ID,null);
newValues.put(KEY_ITEM_ID, modelInventory.getItemId());