最近寫了一個存儲數據的功能,在一個表內插入多行數據,如果想計算此時是第幾行的話可用以下語句:
Cursor cursor = cheatOpenHelper.getWritableDatabase()
.rawQuery("SELECT COUNT(*) AS NumberOfOrders FROM "
+ DBinfo.CHEAT_TABLE_NAME, null);
執行完此句不會直接返回行數,而是數據庫中又建一張表,列名爲
NumberOfOrders ,如圖:
此時rawQuery返回一個cursor(光標)指着6所以應的這一行。
接下來需要將6讀出,則
if (cursor.moveToFirst()) {
lineNums = cursor.getInt(cursor.getColumnIndex
("NumberOfOrders"));
}
不可直接讀,一定要對cursor進行判斷,否則會拋這樣的異常:android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0:
原因應該是cursor的初始下標爲-1.