flutter - Flutter sqflite,从rawQuery检索数据

标签 flutter dart sqflite

我有以下rawQuery

final maps = await db.rawQuery("""
select r.id, r.name, r.description,r.created_by,
a.id,a.name,a.description from Resources r 
left join Resource_Attribute ra on ra.resource_id = r.id
left join AttributeItems a on ra.attribute_id=a.id
""");

我的问题是如何从查询的所有列中检索数据?进行以下操作
 maps.forEach((dbItem){
     String resourceId = dbItem["r.id"];

似乎不起作用。 dbItems 是一个映射,但仅包含资源表中的四列。 dbItem [“r.id”]返回null。

dbItems确实包含“行”字段,该字段是包含所有字段的数组。有办法访问吗?

最佳答案

如果查看dbItem.keys,您会发现它是['id','name',...]而不是['r.id','r.name']

您可以使用以下方法访问资源ID:

var resourceId = dbItem['id'] as String;

您可以使用AS明确命名列。例如:
var resultSet = await db.rawQuery("SELECT r.id AS r_id FROM test r");
// Get first result
var dbItem = resultSet.first;
// Access its id
var resourceId = dbItem['r_id'] as String;

关于flutter - Flutter sqflite,从rawQuery检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59768093/

相关文章:

Flutter 下载文件到手机下载目录

flutter - Flutter Visibility Toggle无法正常工作

database - 注销时删除数据库,并在登录dart后再次创建

Flutter:在数据库中插入数据列表的有效方法

flutter - Flutter block 监听器内的延迟状态检查

firebase - 如何在flutter中从Firebase数据库检索数据?

flutter - 如何防止多次加载图像?

javascript - 如何在聚合物元素中使用来自 Dart 的 javascript

dart - 核心样式和类似乎不起作用

flutter - ¿如何在Flutter中迭代快照?