Flutter SQFLite如何统计数据表中所有记录?
解决SQFLite统计数据表记录数量的报错问题
你的代码报错是因为db.rawQuery()返回的是List<Map<String, Object?>>类型,无法直接赋值给int变量。下面提供两种正确的实现方式:
方式一:解析rawQuery的结果
利用sqflite提供的工具方法提取统计值:
Future<int> countAllTasks() async { final db = await instance.dataBase; final List<Map<String, Object?>> result = await db.rawQuery('SELECT COUNT(1) FROM $myTable'); // 提取统计数值,为空时返回0避免null错误 return Sqflite.firstIntValue(result) ?? 0; }
方式二:使用query方法更简洁
sqflite的query方法支持直接统计记录数,无需手写SQL:
Future<int> countAllTasks() async { final db = await instance.dataBase; final int count = await db.query(myTable, count: true); return count; }
内容的提问来源于stack exchange,提问作者DktPhl2018
相关产品推荐
相关产品推荐

