如何从地图列表中逐列检索数据?

时间:2019-04-08 09:57:40

标签: database list sqlite dart flutter

我需要从SQLite数据库的2列中检索值,并且正在使用辅助查询。

我尝试通过索引值来

print("In the login List : "+ lg[0].toString());

但是我得到

In the login List : {email: xxxx@gmail.com, password: xxxx}

  Future<bool> loginUser(String username, String password) async {
    bool isSuccess;
    Database db = await this.database;
    List<Map<String, dynamic>> lg = await db.query(regTable,
        columns: [colEmail, colPassword],
        where: "$colEmail = ? AND $colPassword = ?",
        whereArgs: [username, password]);
    if (lg.length > 0) {
      print("In the login List : "+ lg[0].toString());
      isSuccess = true;
    } else {
      isSuccess = false;
    }
    return isSuccess;
  }

我需要能够分别检索电子邮件和密码。 喜欢, print(Email : lg(email));

2 个答案:

答案 0 :(得分:0)

我想我已经解决了。

      lg.forEach((f){
        print(f["password"]);
      });

这让我得到了想要的东西。但是,如果您有任何建议,请随时。

答案 1 :(得分:0)

您有List个中的Map个。您似乎想从该列表中生成特定键值的列表。 List方法map非常适合此类问题。例如:

final emails = lg.map((item) => item["email"]), 
  passwords = lg.map((item) => item["password"]);

(这些实际上是普通的Iterable;如果您想要List,只需在末尾添加.toList()。)