在sqflite数据库中,我有一个名为user的表。用户由用户名a,b,c组成。
当用户输入输入变量a时,系统将与表user中的用户名进行比较。如果用户输入等于表user中的username,则系统将显示错误消息,否则系统将显示成功。
我尝试使用Future Builder,但是没有用。如何在Test.dart中进行验证?
谢谢。
这是我的代码:
SqliteHelper.dart
icon: `src/images/gatsby-icon.png`,
}
Test.dart
Future getDat(UserAccount userAccount) async {
var dbClient = await db;
name = userAccount.username;
List<Map> result = await dbClient.query("UserAccount",
where: "username =?", whereArgs: [userAccount.username]);
if (result.length == 1) {
return name;
}
}
答案 0 :(得分:0)
Future<String> getDat(String username) async {
var dbClient = await db;
List<Map> result = await dbClient.query("UserAccount",
where: "username =?", whereArgs: [username]);
if (result.length == 1) {
return name;
}
return null;
}
_saveData() async {
var db = UserAccountHelper();
var username = cTitle.text;
if(await db.getDat(username) != null) {
print('Error');
return;
}
print('Success');
}
我修改过的东西:
您不需要UserAccount作为参数,因为您只使用其中的用户名。
如果在数据库中找不到用户名,则getDat返回null;
在_saveData
中,如果来自getDat
的结果不为 error
,则打印,否则为 {{1} } 。