无法获取android sqlite表中的总行数

无法获取android sqlite表中的总行数,android,sqlite,android-sqlite,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(); retur

在数据库中

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行时, 当它遇到任何争吵时,我不知道出了什么问题,但是
应用程序停止、,如果需要任何其他信息,请告诉我。

尝试类似的方法

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

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

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

检查,java.lang.String,java.lang.String第二个代码段需要在FROM和之间留有空格,或者类似于SELECT count*FROMTABLE\u LOG,而不是SELECT count*FROMTABLE\u LOGlong用于查询SQLiteDatabase db,String query,String[]选择OnArgs实用程序方法在数据库上运行查询并返回第一行第一列中的值。不工作!!!!不工作!!!但仅当表中有某些内容时,返回值存储在何处以及如何存储?它应该得到行的总数。cursor.moveToFirst;和int count=cursor.getCount;这两行对于获取表中的多行非常有用。您可以返回计数值以供进一步使用。这正是它所做的。请记住根据您的需要更换myColumn和myTable。行总数将由cur.getInt0给出;