我有一些有一些行的数据库,我想获取表中的所有数据并将它们添加到对象类型的列表中。
我试过这个:
var dbClient = await database;
result = await dbClient.rawQuery('SELECT * FROM $newsTable');
for (var n in result){
favNews.add(n);
}清单如下:
List<NewsModel> favNews = <NewsModel>[];但是我发现了这个错误:
[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: type 'QueryRow' is not a subtype of type 'NewsModel'如何在新闻类型数组中获得结果?
发布于 2019-08-20 15:55:40
我假设您使用的是方辉石。
rawQuery返回List<Map>,当迭代此列表时,循环n中的局部变量具有不能分配给NewsModel的类型Map。
您需要向模型类NewsModel添加一些转换方法,以便从Map进行转换。
甚至还有一个sqflite文档中的示例!
class NewsModel {
int id;
String title;
// ... more property
NewsModel();
NewsModel.fromMap(Map<String, dynamic> map) {
id = map["id"]
title = map["title"]
// ...
}
}以及数据库查询代码中的:
var dbClient = await database;
result = await dbClient.rawQuery('SELECT * FROM $newsTable');
for (var n in result){
favNews.add(NewsModel.fromMap(v));
}https://stackoverflow.com/questions/57577110
复制相似问题