¿Cómo obtener el recuento de filas de una consulta en Android usando SQLite?

¿Cómo obtengo el recuento de filas de una consulta en Android usando SQLite? Parece que mi siguiente método no funciona.

public int getFragmentCountByMixId(int mixId) { int count = 0; SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); Cursor cursor = db.rawQuery( "select count(*) from downloadedFragement where mixId=?", new String[]{String.valueOf(mixId)}); while(cursor.moveToFirst()){ count = cursor.getInt(0); } return count; } 

Cursor.getCount()

 cursor.moveToNext(); cursor.getCount(); 

Si no se llama a moveToNext (), puede surgir el cursorIndexOutOfBoundException.

Esto sería más eficiente porque funciona para todas las versiones:

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

o

 int numRows = DatabaseUtils.queryNumEntries(db, "table_name"); 

O si desea obtener el número de filas que la selección específica, entonces usted debe ir con (añadido en API 11)

 public static long queryNumEntries (SQLiteDatabase db, String table, String selection) 

Gracias 🙂

Consulta la columna _ID en la tabla y luego llama a getCount en el cursor. Aquí hay un enlace que estoy haciendo en uno de mis proyectos. Mira la línea número 110.

En DatabaseUtils

 public static long queryNumEntries(SQLiteDatabase db, String table) 

Use String en lugar de int

 String strCount = ""; int count = 0; SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); Cursor cursor = db.rawQuery( "select count(*) from downloadedFragement where mixId=?", new String[]{String.valueOf(mixId)}); while(cursor.moveToFirst()){ strCount = cursor.getString(cursor.getColumnIndex("COUNT(*)")); } count = Integer.valueOf(strCount).intValue(); 
  • SQLiteQueryBuilder.query () vs SQLiteDatabase.query ()
  • Aplicación de Android con base de datos constantemente "inicio / espera de un bloqueo gc alloc"
  • Sincronizar SQLite con un servidor de bases de datos SQL externo
  • Compartir base de datos SQLite entre 2 aplicaciones de Android?
  • Cómo ver la base de datos de aplicación de Android que se ejecuta en mi teléfono
  • Cómo convertir milisegundos a la fecha en SQLite
  • Obtener fila aleatoria de SQLite Database Android SDK
  • Obtener mínimo de la columna de la base de datos SQLite?
  • Actualizar base de datos utilizando mi OpenHelper en greendao
  • Android.database.CursorWindowAllocationException al mover un Cursor
  • ¿Cómo obtener todos los nombres de tablas en la base de datos Android sqlite?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.