检查登录是否在数据库中

时间:2014-02-16 00:04:43

标签: c# asp.net sql

我的当前代码让我进入下一页,即使用户名/密码是假的,这不是想要的效果,我哪里错了?应该在这个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;
    }

1 个答案:

答案 0 :(得分:2)

您错过了执行尝试将cmd.ExecuteScalarAsync()替换为:

cmd.ExecuteScalar();

如果假装通过使用“异步”方法在同一函数内返回结果来假装返回同步执行,则可能无法按预期工作。

或试试这个,但我觉得这没什么意义,至少对我来说是这样的:

object obj = await cmd.ExecuteScalarAsync();

等待会做到这一点。