前几天在论坛上问了一个问题,有人解答了,我总结下来,以后可以用到
自己先建立一个空表,继而用以下方法得到表中数据的个数
String sql = "select count(*) from " + TABLENAME; return sqliteDatabase.rawQuery(sql,null).getCount();
发现返回的是1,而不是0.
但是用下面这个方法就对了
return sqliteDatabase.query(TABLENAME,null,null).getCount();
因为sqliteDatabase.rawQuery(sql,null)的返回值是Cursor游标,也就是说,你的cursor的记录数是1,你可以使用以下代码利用cursor,取得查询的记录数,空表的话也就是0啦。
Cursor cursor = sqliteDatabase.rawQuery(sql,null);
cursor.moveToFirst();
return cursor.getLong(0);
rawQuery和query构造的sql语句不一样,得到结果的cursor也不一样。
rawQuery的sql语句是select count(*) from ,cursor的结果是一条记录,里面是0,getCount()=1
query的sql语句是select * from,cursor没有记录,getCount()=0
cursor.getCount()
return the number of rows in database table.
参考是:点击打开链接
原文链接:https://www.f2er.com/sqlite/200173.html