sqlite 漂移/摩尔/ Flutter 状态错误(不良状态:使用getSingle()选择单行时无元素

pxy2qtax  于 2023-01-26  发布在  SQLite
关注(0)|答案(1)|浏览(130)

使用.getSingle()方法从Drift数据库检索数据时,如果没有与搜索条件匹配的行,则会引发StateError (Bad state: No element)错误。这是预期行为吗?

Future<MyData> singleMyData(String id) {
    return (select(myDatas)..where((t) => t.id.equals(id)))
        .getSingle();
  }

...

var singleData = await myDatabase.singleMyData("theId");
62lalag4

62lalag41#

这意味着元素不在数据库中。请尝试以下操作:

// can return empty list
  Future<List<DATA>> lookForSong(String songId) {
    return (select(records)..where((tbl) => tbl.uid.equals(recordId))).get();
  }

// data is sure to be present
  Future<DATA> getSong(String songId) {
    return (select(records)..where((tbl) => tbl.uid.equals(recordId))).getSingle();
  }

相关问题