SQLiteDatabase db = ....;
Cursor cursor = db.rawQuery("“select count(*) from tableA", null);
while (cursor.moveToNext()) {
int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
String name = cursor.getString(1);//获取第二列的值
int age = cursor.getInt(2);//获取第三列的值

解决方案 »

  1.   


    为什么要用游标?
    我用的是CppSQLite3DB类,里面execScalar函数直接返回记录数的
      

  2.   

    个人理解,你里面不管有多少数据都返回 1,原因很有可能是,返回值1代码执行成功你看看API吧
      

  3.   

    个人理解:1.   就像3L说的,返回1是代表的执行成功。
    2.   1是代表着返回一条数据,而不是count(*)的值RecNo   count(*)
      1               0         只有这1条数据
      

  4.   

    这个我调试的时候已经跟踪过程序,返回的是count(*)的值
      

  5.   

    SQLite3的这个DB封装类CppSQLite3DB,大家没用过吗?
    奇怪,这个问题困扰我半天了,愣是没明白什么原因补充说明一下,有数据的情况下,返回值是正确的,用count(*)
    比如我有3条数据,则返回的确实是 intCount = 3
    一条数据返回的是 intCount = 1可就是为什么没数据的时候也返回的是 intCount = 1 ?? 这就有点纳闷了