【发布时间】:2014-03-05 19:22:34
【问题描述】:
我搜索了堆栈溢出,但找不到解决方案。 这是我的 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 是定义来自编辑文本字段的用户输入的变量。
当我通过调用 toast 检查数据库时,除了作为 Null 插入的 cardID 之外,所有内容都被插入。 怀疑我的 toast 检查,我下载了一个数据库查看器,还发现 cardID 为空。
有什么建议吗?
【问题讨论】:
标签: android sqlite auto-increment