我想從我的數據庫中選擇某些行,但因爲我一直在索引出界,我決定現在刪除WHERE
部分,只是得到所有的數據。 我已經使用了android教程http://developer.android.com/training/basics/data-storage/databases.html#DbHelper,爲了創建這個方法。但是當我試圖從查詢中獲取值時,我得到CursorIndexOutOfBoundsException。Android的SQLite的db.query導致CursorIndexOutOfBoundsException
我的代碼:
String getSite() {
SQLiteDatabase db = this.getReadableDatabase();
//get all data for now
Cursor c = db.query(
TABLE_NAME, // The table to query
null, // The columns to return
null, // The columns for the WHERE clause
null, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
null // don't sort
);
c.moveToFirst();
String test= c.getString(0);
c.close();
return test;}
}
的錯誤: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6
當我檢查c.count()我有6,所以我不知道爲什麼,我指的是一個指數可能越界
謝謝
雖然你應該經常檢查moveToFirst的'()'的返回值,這個代碼不應該拋出此異常。你確定這是錯誤發生的地方嗎? – Sam
同意@Sam - 我看不出任何錯誤的代碼。 – Squonk
是的,我是積極的。添加此我的代碼解決了這個問題,但我不知道爲什麼 '如果(c.moveToFirst()){{做' \t'的System.out.println(c.getString(0));' \t \t \t'} while(c.moveToNext());' \t \t \t \t'}' – Quantico