【问题标题】:issue with geting all data from sqflite database从 sqlite 数据库获取所有数据的问题
【发布时间】:2020-05-15 15:10:05
【问题描述】:

我一直在尝试从 sqflite 数据库中获取所有数据,当我尝试获取单个数据时,这完全正常:

Future<dynamic> getUser() async {
final db = await database;
var res = await db.query("files");
if (res.length == 0) {
  return null;
} else {
  var resMap = res[0];
  return resMap;
 }
}

但是当我尝试使用如下示例的 for 循环获取所有数据时,出现错误

Future<dynamic> getUser() async {
  final db = await database;
  var res = await db.query("files");
  var resMap;
  var count = res.length;
  if (count != 0) {
    for (int i = 0; i < count; i++) {
      resMap.add(res[i]);
    }
  }

  return resMap;
}

错误提示:

The method 'forEach' was called on null.
Receiver: null
Tried calling: forEach(Closure: (dynamic, dynamic) => Null)

我知道它说我没有数据, 我也尝试删除 if 语句,但仍然没有运气!

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies


    【解决方案1】:

    改变这个方法:

    编辑

    Future<List<Map>> getUser() async {
      final db = await database;
      var res = await db.query("files");
      List<Map> resMap = [];
      if (res != null res.length > 0) {
        for (int i = 0; i < count; i++) {
          resMap.add(res[i]);
        }
        return resMap;
      } else
      {
        return null;
      }
    }
    

    【讨论】:

    • 遗憾的是问题仍然存在,我在某处读到我必须将 resMap 的类型更改为地图,请告诉我这是怎么发生的?
    • 非常感谢您抽出宝贵时间,非常感谢,现在我没有收到任何错误,但我在屏幕上看不到任何内容,您能帮我解决一下吗?跨度>
    • 我为您的小部件提供了另一个答案
    • 非常感谢,它成功了,我真的不知道该怎么感谢你,真的很感激
    【解决方案2】:

    在你的小部件中试试这个

          List<Map> newUser = [];
    
          @override
          void initState() {
            super.initState();
            getUser();
          }
    
          getUser() async {
            final _userData = await DBProvider.db.getUser();
            if(_userData != null ){
              setState(() {
                newUser = _userData;
              });
            } else{
              setState(() {
                newUser =[];
              });
            }
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      相关资源
      最近更新 更多