2011-09-01 184 views
0

我能够创建项目并将其添加到数据库,但从数据库中检索没有发生 它显示为找不到列。部分代码如图所示!请帮助无法从数据库检索项目

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

,你的retriving入口时刻得到的问题是C对象为null,或者你在c.getString()时间 – Pratik

+0

java.lang中得到错误 - 这是说,coulmn不found..i把try赶上,它工作正常,直到回顾 – Nikhil

+0

它看起来像你的表没有被创建 - 你确定代码db.execSQL实际上被称为?在它上面放一个断点来检查。 –

回答

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

没有这样的列..同名错误 – Nikhil

+0

将KEY_ROWID设置为字符串类型。 –

+0

不,我必须使用它作为我的应用程序的整数..我已经尝试过......它没有工作 – Nikhil

0

它认为你初始化列名

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