gpt4 book ai didi

Android - SQLite AUTOINCREMENT 不递增主键

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:43 24 4
gpt4 key购买 nike

我搜索过堆栈溢出问题,但找不到解决方案。这是我的 SQLite onCreate 代码。

public void onCreate(SQLiteDatabase database) {
String query = "CREATE TABLE cards (cardID INTEGER PRIMARY KEY AUTOINCREMENT, question VARCHAR, answer VARCHAR, subject VARCHAR)";
database.execSQL(query);
}

我用它从适配器 (DbTools) 插入

public void insertCard(HashMap<String, String> queryValues) {

SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("question", queryValues.get("question"));
values.put("answer", queryValues.get("answer"));
values.put("subject", queryValues.get("subject"));

database.insert("cards", null, values);
database.close();

}

这是我将数据插入数据库的方式。

HashMap<String, String> Values = new HashMap<String, String>(); 
Values.put("question", newQuestion);
Values.put("answer", newAnswer);
Values.put("subject", newSubject);
dbTools.insertCard(Values);

其中 newQuestion、newAnswer 和 newSubject 是定义来自 edittext 字段的用户输入的变量。

当我通过调用 toast 检查数据库时,除了作为 Null 插入的 cardID 之外,所有内容都被插入。怀疑我的 toast check,我下载了一个数据库查看器,也发现 cardID 为空。

有什么建议吗?

最佳答案

cardID INTEGER PRIMARY KEY AUTOINCREMENT 替换为 cardID INTEGER PRIMARY KEY

public void onCreate(SQLiteDatabase database) {
String query = "CREATE TABLE cards (cardID INTEGER PRIMARY KEY, question VARCHAR, answer VARCHAR, subject VARCHAR)";
database.execSQL(query);
}

您不必像在 SQLite 中那样专门编写 AUTO_INCREMENT

只需将主键字段定义为_id INTEGER PRIMARY KEY

关于Android - SQLite AUTOINCREMENT 不递增主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21643715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com