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