4
votes

Comment obtenir le nombre de lignes dans une table de base de données avec Flutter SQFlite

Comment obtenir le nombre de lignes d'une table de base de données dans Flutter. J'utilise le plugin SQFlite.

Je suppose qu'il est similaire à Android, mais Android a DatabaseUtils.queryNumEntries (db, TABLE_NAME) . SQFlite a-t-il quelque chose de similaire?

Je réponds à la question au mieux de mes connaissances ci-dessous, mais je serais heureux d'avoir une meilleure réponse s'il y en a une.


0 commentaires

4 Réponses :


16
votes

Vous pouvez utiliser

int count = Sqflite.firstIntValue(await db.rawQuery('SELECT COUNT(*) FROM table_name'));

db est un SQFlite Database.

Source: J'ai trouvé ceci ici et dans le code source .


0 commentaires

-1
votes

Vous pouvez également utiliser

List<Map> list = await db.rawQuery('SELECT * FROM table_name');
int count = list.length;


2 commentaires

Il n'est pas recommandé de charger tous les enregistrements de la liste uniquement pour vérifier le nombre d'enregistrements. Utilisez toujours la fonction count (*) .


Votre fonction ralentira votre application, car elle chargera toutes les données des enregistrements et il faudra beaucoup de temps pour s'exécuter plutôt que pour utiliser count



7
votes

Essayez cette fonction:

Future<int> getCount() async {
    //database connection
    Database db = await this.database;
    var x = await db.rawQuery('SELECT COUNT (*) from 
    $Table');
    int count = Sqflite.firstIntValue(x);
    return count;
}


0 commentaires

0
votes

Essayez ce code:

class _MainView extends State<MainView> {

  DatabaseHelper dbHelper = databaseHelper();  

  @override
  void initState() {
    super.initState();
    databaseHelper.getModelsFromMapList();
  }
}

Ajoutez la fonction initState () dans votre vue puis appelez la fonction getModelsFromMapList :

XXX


0 commentaires