Comment obtenir le nombre de lignes d'une requête dans Android à l'aide de SQLite? Il semble que ma méthode suivante ne fonctionne pas.
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.moveToNext();
cursor.getCount();
Si moveToNext () n'est pas appelé, l'exception cursorIndexOutOfBoundException peut survenir.
Ce serait plus efficace car fonctionne pour toutes les versions:
int numRows = DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM table_name", null);
ou
int numRows = DatabaseUtils.queryNumEntries(db, "table_name");
ou si vous voulez obtenir le nombre de lignes dont selection alors vous devriez aller avec (ajouté dans API 11)
public static long queryNumEntries (SQLiteDatabase db, String table, String selection)
Merci :)
Interrogez la colonne _ID dans la table, puis appelez getCount sur le curseur. Voici un link je fais dans un de mes projets. Regardez la ligne numéro 110.
val query = "SELECT * FROM $TABLE_NAME ;"
val result = db.rawQuery(query,null)
Toast.makeText(ctx,result.count,Toast.LENGTH_SHORT).show()
utilisez String au lieu 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();
Dans DatabaseUtils
public static long queryNumEntries(SQLiteDatabase db, String table)
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT COUNT(*) FROM contacts", null);
}
Vous pouvez utiliser ceci comme méthode ou si votre base de données utilise l'incrémentation automatique
public long getRecords() {
return DatabaseUtils.longForQuery(db, "SELECT seq FROM sqlite_sequence", null);
}