android sqlite 插入行計算

最近寫了一個存儲數據的功能,在一個表內插入多行數據,如果想計算此時是第幾行的話可用以下語句:

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章