3

我想在android中计算表格的行数。我使用了2种方法但没有成功并收到警告消息

Launch timeout has expired, giving up wake lock!
 Activity idle timeout for HistoryRecord{44e26a30 com.india.screen/.CategoryList}

我试过了-

String query="Select count(*) from Holyplace_Tbl";
  1. 使用 rawQuery

    公共无效countRows(字符串查询){

    Cursor mcursor = assetDatabaseHelper.executeQuery(query);
    mcursor.moveToFirst();
    int icount = mcursor.getInt(0);
    System.out.println("NUMBER IN DB: " + icount);
    mcursor.close();
    

    }

  2. 使用 DatabaseUtils

    public int countRows(String query)
    {
    
       int sometotal = (int) DatabaseUtils.longForQuery(sqliteDatabaseObj, query, null);
      return sometotal;
     }
    

    AssetDatabaseOpenHelper.class

4

5 回答 5

11

试试这个

private static final String DB_TABLE_PLACES = "Places";
private SQLiteDatabase mDatabase;

private long fetchPlacesCount() {
    String sql = "SELECT COUNT(*) FROM " + DB_TABLE_PLACES;
    SQLiteStatement statement = mDatabase.compileStatement(sql);
    long count = statement.simpleQueryForLong();
    return count;
}

在这里查看更多。

于 2012-11-07T06:38:39.287 回答
4

我从如何计算 sqlite 中的记录数中找到的最简单有效的方法

DatabaseUtils提供了用于处理数据库和游标的静态实用程序方法。

int numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM table_name", null);

或者:

int numRows = DatabaseUtils.queryNumEntries(db, "table_name");
于 2014-06-10T11:56:53.867 回答
1

您可以像这样使用简单的 RawQuery:

private SQLiteDatabase mDatabase;

Cursor c = mDatabase.rawQuery("select COLUMN_NAME from TABLE_NAME",null);

int count = c.getCount();

Cursor.getCount()方法返回游标中的行数,在这种情况下将是您要查找的项目数。

于 2012-11-07T06:47:10.303 回答
0
long numRows = DatabaseUtils.queryNumEntries(db, table);
于 2014-07-17T08:40:30.427 回答
0

您可以按如下方式获取行数:

c = db.rawQuery("SELECT * FROM Your_tabename", null);
int i = c.getCount();
于 2015-06-15T11:18:13.410 回答