java将数据插入SQLite
我想将数据插入我的SQLite数据库。 它由3列组成,分别命名为、id、问题和答案
这是我的提问方法
long addQuestion(addtodb question) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, KEY_NAME); // question Name
values.put(KEY_ANSWER, KEY_ANSWER); // answer
// Inserting Row
return db.insert(TABLE_QUESTIONS, null, values);
//db.close(); // Closing database connection
}
addtodb getQuestion(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_QUESTIONS, new String[] { KEY_ID,
KEY_NAME, KEY_ANSWER }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
addtodb question = new addtodb(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
return question;
}
我这样叫这个方法,
DatabaseHandler db = new DatabaseHandler(this);
long id = db.addQuestion(new addtodb(0, "Question1", "answer1"));
id = db.addQuestion(new addtodb(0, "Question2", "answer2"));
db.close();
我希望这些记录也是1, Question1, Answer1
但是我得到了1, Question, Answer
我不知道出了什么问题
# 1 楼答案
我假设,您的Addtodb类如下所示:
更正如下:
# 2 楼答案
我认为问题在于以下几方面:
您不会传递要写入数据库的实际值。put方法的第二个参数应为实际值
# 3 楼答案
这就是你犯错误的地方,你的问题是
Question1
没有发送, 这是sendQuestion
将此更改为
您的调用方法也可以更改,因为您已经在
addQuestion
方法中初始化了数据库这会奏效的