You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:02:01