首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从db中获取行并将它们添加到类型对象列表中

从db中获取行并将它们添加到类型对象列表中
EN

Stack Overflow用户
提问于 2019-08-20 15:35:42
回答 1查看 888关注 0票数 0

我有一些有一些行的数据库,我想获取表中的所有数据并将它们添加到对象类型的列表中。

我试过这个:

代码语言:javascript
复制
var dbClient = await database;
result = await dbClient.rawQuery('SELECT * FROM $newsTable');
for (var n in result){
  favNews.add(n);
}

清单如下:

代码语言:javascript
复制
List<NewsModel> favNews = <NewsModel>[];

但是我发现了这个错误:

代码语言:javascript
复制
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: type 'QueryRow' is not a subtype of type 'NewsModel'

如何在新闻类型数组中获得结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 15:55:40

我假设您使用的是方辉石

rawQuery返回List<Map>,当迭代此列表时,循环n中的局部变量具有不能分配给NewsModel的类型Map

您需要向模型类NewsModel添加一些转换方法,以便从Map进行转换。

甚至还有一个sqflite文档中的示例

代码语言:javascript
复制
class NewsModel {

  int id;
  String title;
  // ... more property

  NewsModel();

  NewsModel.fromMap(Map<String, dynamic> map) {
    id = map["id"]
    title = map["title"]
    // ...
  }


}

以及数据库查询代码中的:

代码语言:javascript
复制
var dbClient = await database;
result = await dbClient.rawQuery('SELECT * FROM $newsTable');
for (var n in result){
  favNews.add(NewsModel.fromMap(v));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57577110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档