【发布时间】:2020-02-25 10:28:15
【问题描述】:
我正在使用一些 sqflite 对数据库进行查询,并提取表的特定名称,例如:我有 3 个名称,罗伯托、里卡多和安德烈斯,我只想获取罗伯托的名称,所以这就是我正在做的事情:
loginLogic() async {
var X = 'Roberto';
final db = await database;
List<Map> result = await db.rawQuery('SELECT * FROM Usuario WHERE username=?', [X]);
所以现在,我想将这个结果与另一个结果进行比较来做一个“if”函数,就像这样:
if(result==X){
return 1;
} else {
return 0;
}
但这就是flutter所说的:
List<Map<dynamic, dynamic>> result
Equality operator '==' invocation with references of unrelated
还有调试控制台:
type 'Future<dynamic>' is not a subtype of type 'int'
所以我需要一种方法来比较来自用户列表的值与带有我声明为“X”的变量的字符串。
尝试使用this problem的引用
这是我尝试过的:
loginLogicpar() async {
var X = 'Giova';
final db = await database;
final result = await db.rawQuery('SELECT * FROM Usuario WHERE username=?', [X]);
return result;
}
loginLogic() async {
var X = 'Giova';
final user = await loginLogicpar();
if(user==X){
return 1;
}
return 0;
}
并返回完全相同的结果:类型'Future'不是类型'int'的子类型
添加了the code,以便您可以复制它,只要确保您的依赖项上有 sqflite。
【问题讨论】:
-
不,我试过了,没啥影响,把修改后的代码贴在帖子上
-
您能告诉我们
db.rawQuery('SELECT * FROM Usuario WHERE username=?', [X]);调用实际返回的内容是什么吗? -
这是我得到的: _columnIndexMap:Map (4 items) _columns:CastList _keys:List (4 items) _rows:CastList first:QueryRow hashCode:218916665 isEmpty:false isNotEmpty:true iterator:ListIterator keys :List (4 items) last:QueryRow length:1 reversed:ReversedListIterable runtimeType:Type (QueryResultSet) single:QueryRow
-
@mutantkeyboard 是的!这为我解决了!现在我从桌子上得到了我想要的名字,你让我很开心,先生!我发布了我的代码,所以你知道我是怎么做到的。