最近写了一个存储数据的功能,在一个表内插入多行数据,如果想计算此时是第几行的话可用以下语句:
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.