我只是想在登录时接受用户名和密码,并检查数据库中的用户是否有效,但问题是任何用户名和密码都显示“登录成功”。我给它的任何值都显示登录成功,但它应该显示“用户不存在”。请帮帮我。
db_service.dart
Future<RegisterUser> getLogin(String user, String password) async {
await DB.init();
var res = await DB.rawQuery("userDetails WHERE emailId = '$user' and password = '$password'");
if (res.length > 0) {
return RegisterUser.fromMap(res.first);
}
return null;
}
UserLogin.dart(登录按钮代码)
bool validateAndSave() {
final form = _formKey.currentState;
if (form.validate()) {
form.save();
return true;
}
return false;
}
void _submit(){
final form = _formKey.currentState;
var res;
if (validateAndSave()) {
setState(() {
res=dbService.getLogin(_email, _password).then((value) {
if(res!=0){
FormHelper.showMessage(
context,
"Login",
"Login Successfull",
"Ok",
() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => People_List(),
),
);
},
);}
else {
FormHelper.showMessage(
context,
"Login",
"Login not Successfull",
"Ok", () {}
);
}
});
});
}
}
答案 0 :(得分:0)
您似乎以错误的方式使用了 Future 函数。
res= await dbService.getLogin(_email, _password);
if(res != 0){
} else {
}
或
dbService.getLogin(_email, _password).then((value) {
if(value != 0){
}else {
}
}, onError(e){});