没有获得android sqlite表中存在的总行数

时间:2016-10-26 17:24:15

标签: android sqlite android-sqlite

在数据库中。

public int getCnt() {
    String countQuery = "SELECT * FROM " + TABLE_LOG;
    SQLiteDatabase db = this.getReadableDatabase();    
    Cursor cursor = db.rawQuery(countQuery, null)
    int cnt = cursor.getCount();
    cursor.close();
    return cnt;
}

也尝试了

 public long getCnt() {
    SQLiteDatabase db = this.getReadableDatabase();
    long cnt = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM " + TABLE_LOG, null);
    return cnt;
}

中的

int x =0; // long for other func..
x = dbh.getCnt();  
 Toast.makeText(getApplicationContext(),String.valueOf(x),Toast.LENGTH_SHORT).show();

    if(x==0){
        //do some stuff
        }
    else{
        //do some other stuff
    }

它可以工作,但只有当表有0行时, 当它遇到任何行时我不知道出了什么问题但是 app停止,,如果需要任何其他信息,请告诉我

2 个答案:

答案 0 :(得分:1)

尝试这样的事情。

Cursor cur = db.rawQuery("SELECT SUM(myColumn) FROM myTable", null);

if(cur.moveToFirst())
{
    return cur.getInt(0);
}

答案 1 :(得分:1)

首先,如果您只是想要计数,那么在行中加载数据是非常低效的。如果你想要计算,你应该使用queryNumEntries