无法从数据库检索项目
问题描述:
我能够创建项目并将其添加到数据库,但从数据库中检索没有发生 它显示为找不到列。部分代码如图所示!请帮助无法从数据库检索项目
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_QUES + " TEXT NOT NULL, " +
KEY_A + " TEXT NOT NULL, " +
KEY_B + " TEXT NOT NULL, " +
KEY_C + " TEXT NOT NULL, " +
KEY_D + " TEXT NOT NULL);"
);
//添加条目
public long createEntry(String ques, String a, String b, String c, String d) {
ContentValues cv = new ContentValues();
cv.put(KEY_QUES, ques);
cv.put(KEY_A, a);
cv.put(KEY_B, b);
cv.put(KEY_C, c);
cv.put(KEY_D, d);
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
// Retriving条目
public String getName(long l) throws SQLException{
String[] columns = new String[]{ KEY_ROWID, KEY_QUES, KEY_A, KEY_B, KEY_C,KEY_D};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + l, null, null, null, null);
if (c != null){
c.moveToFirst();
friends.question = c.getString(1);
friends.a = c.getString(2);
}
return null;
}
答
尝试。
public String getName(long l) throws SQLException{
String[] columns = new String[]{ KEY_ROWID, KEY_QUES, KEY_A, KEY_B, KEY_C,KEY_D};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=?", new String[] {Long.toString(l)}, null, null, null);
if (c != null){
c.moveToFirst();
friends.question = c.getString(1);
friends.a = c.getString(2);
}
return null;
}
答
它认为你初始化列名
Cursor cur=ourDatabase.query(DATABASE_TABLE, null,null, null, null, null, null);
看到包含什么表如果它包含不同的列名称,然后使用它们, 可能是你已经做初始化
like KEY_A="key_a" like this then use
是一部开拓创新的价值。 确保使用getReadbleDatabase在读取和getWritableDatabase(),而使用编辑后的代码检索目的插入
+0
是的,我也这么做..仍然不工作! – Nikhil
,你的retriving入口时刻得到的问题是C对象为null,或者你在c.getString()时间 – Pratik
java.lang中得到错误 - 这是说,coulmn不found..i把try赶上,它工作正常,直到回顾 – Nikhil
它看起来像你的表没有被创建 - 你确定代码db.execSQL实际上被称为?在它上面放一个断点来检查。 –