我的当前代码让我进入下一页,即使用户名/密码是假的,这不是想要的效果,我哪里错了?应该在这个if语句中加入什么?
private bool UserLogin(string un, string pw){
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("Select username from users where username=@un and password=@pw", con);
cmd.Parameters.AddWithValue("@un", un);
cmd.Parameters.AddWithValue("@pw", pw);
con.Open();
string result = Convert.ToString(cmd.ExecuteScalarAsync());
if (????????????)
{
return true;
}
return false;
}
答案 0 :(得分:2)
您错过了执行尝试将cmd.ExecuteScalarAsync()
替换为:
cmd.ExecuteScalar();
如果假装通过使用“异步”方法在同一函数内返回结果来假装返回同步执行,则可能无法按预期工作。
或试试这个,但我觉得这没什么意义,至少对我来说是这样的:
object obj = await cmd.ExecuteScalarAsync();
等待会做到这一点。