2012-05-13 108 views
2

我想顯示我的所有記錄存儲在數據庫中顯示存儲在SQLite數據庫

c = db.DBhelper.getChamp1(c.getCount); 
//startManagingCursor(c); 
int j = 0; 
stateNameArray = new String[c.getCount()]; 
c.moveToFirst(); 
while(!c.isAfterLast()) { 
    stateNameArray[j] = c.getString(0); 
    j++; 
    Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j)); 
    c.moveToNext(); 
} 
//String resultat = ; 
Log.i("DEBUG_SQL","" + c.getColumnIndex("article")); 

我得到一個錯誤,當我寫c.getCount所有記錄 - 爲什麼?當我寫出像1或2或3這樣的數字時,這是有效的。

而且如果我寫

c = db.rawQuery("SELECT * FROM loan", null); 

我得到一個錯誤,但如果我寫

db.rawQuery("SELECT * FROM loan WHERE _id=1", null); 

工程。爲什麼?

+0

現在,它將在未來確實幫助您檢查您的帖子的外觀。使用'{}'按鈕或'Ctrl-K'縮進代碼,並且不要將實際問題*放在代碼中。 – slhck

+0

你遇到了哪個錯誤? –

+1

'c = db.DBhelper.getChamp1(c.getCount);'他應該做什麼?它看起來像是對我的循環引用。 – Barak

回答

0

至少,我看到這個日誌語句有問題,其中c.getString(j)沒有意義。隨着j變大,它可能會引發錯誤。

Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j)); 

你打算用語句c.getString(j)訪問什麼數據?

關於getCount錯誤。我認爲在以下錯誤是一個錯字。但是,這是與getCount相關的錯誤所在?

c = db.DBhelper.getChamp1(c.getCount); 

但我不應該假設 - 你永遠不知道。它應該讀取(在方法調用中添加括號)。

c = db.DBhelper.getChamp1(c.getCount()); 

而@Barak提到,這個說法是怎麼回事?

0

回答關於您的getCount將isuue的問題,你的錯誤,因爲這樣:

c = db.DBhelper.getChamp1(c.getCount); 

你想你擁有它之前要得到光標的計數(和你錯過() )。

這工作,因爲你有一個光標你拉在下單前數:

c = db.getSomeCursor; 
c1 = db.DBhelper.getChamp1(c.getCount()); 

讓我們知道你想要達到的(我不能從代碼弄清楚你張貼),也許我們可以更有幫助。