2011-09-01 185 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