此代码类给出消息“并非所有路径都返回值”

本文关键字:路径 返回值 代码 消息 | 更新日期: 2023-09-27 17:54:03

 public Boolean login(string n1, string n2)
    {
        string checkuser = "select count(*) from userdata where username='" + n1 + "'";
        SqlCommand com = new SqlCommand(checkuser, con);
        int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
        con.Close();
        if (temp == 1)
        {
            con.Open();
            string checkpassword = "select password from userdata where username='" + n1 + "'";
            SqlCommand passcomm = new SqlCommand(checkpassword, con);
            string password = passcomm.ExecuteScalar().ToString().Replace(" ", "");
            if (password == n2) return false;
            else return true;
        }
    }

此代码类给出消息“并非所有路径都返回值”

编译器错误信息对我来说似乎足够清楚:并非方法中所有可能的代码执行路径最终都会到达返回值的语句。

是不允许的。您已经将方法声明为返回类型为Boolean的值。如果通过方法的执行流到达方法的末尾而没有执行return语句,编译器应该如何知道该方法应该返回什么值?

您可以通过在方法末尾添加return语句(在if语句的右括号之后,但在方法声明本身的右括号之前)来修复编译器错误。即return true;return false;

您在这里没有提供足够的信息让任何人知道哪个是正确的,尽管考虑到代码的"密码"性质,返回false似乎是最安全的。

或者,您可能希望抛出一个异常而不是返回一个值,因为如果执行查询后temp不等于1,可能意味着您的数据库出了问题。