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.
4 Réponses :
Vous pouvez utiliser
int count = Sqflite.firstIntValue(await db.rawQuery('SELECT COUNT(*) FROM table_name'));
où db
est un SQFlite Database
.
Source: J'ai trouvé ceci ici et dans le code source .
Vous pouvez également utiliser
List<Map> list = await db.rawQuery('SELECT * FROM table_name'); int count = list.length;
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
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; }
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