无法从数据库中检索项目

时间:2011-09-01 10:39:24

标签: android mysql

我可以创建项目并将其添加到数据库,但是不会从数据库中检索 它显示没有找到列..代码的一部分如图所示!请帮忙

 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);
}

//重播条目

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;
}       

2 个答案:

答案 0 :(得分:0)

它认为你初始化列名

Cursor cur=ourDatabase.query(DATABASE_TABLE, null,null, null,  null, null, null);

查看哪个表包含正确的内容。如果它包含不同的列名,则使用它们, 可能你已经做了初始化

like KEY_A="key_a" like this then use 

那个原始价值。 确保在读取时使用getReadbleDatabase并在插入时使用getWritableDatabase()

答案 1 :(得分:0)

尝试使用已编辑的代码进行检索。

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;
}