0

如何使用 where 条件从数据库中获取行数?未定义 where 和 whereArgs 参数并且在查询中写入变量不起作用

 Future<int>GetRows(String Username,String Password) async{
    var dbClient = await db;
    return Sqflite.firstIntValue(
    await dbClient.rawQuery(
        "SELECT COUNT(*) FROM $Table WHERE $CoulmnUserName = $Username AND 
         $CoulmnPassword = $Password",
       )
    );
  }

在获取行

int Row = await db.GetRows(_data.Username,_data.Password);

行 == 0

4

2 回答 2

0

?在 where 子句中测试字符串值时,您应该使用 SQLite 参数 ( )。像这样的东西应该工作:

Future<int> getRowCount(String username, String password) async {
  var dbClient = await db;

  var result = await dbClient.query(table,
      columns: ['COUNT(*)'],
      where: '$columnUsername = ? AND $columnPassword = ?',
      whereArgs: [username, password]);

  return firstIntValue(result);
}
于 2019-08-20T10:13:44.843 回答
-1

我认为您可以尝试以下代码:-

Future<int>GetRows(String Username,String Password) async{
  var dbClient = await db;

  var result = await dbClient.rawQuery("SELECT COUNT(*) FROM $Table WHERE $CoulmnUserName = $Username AND $CoulmnPassword = $Password");

  return result.length;
}
于 2019-08-17T08:48:54.987 回答