此代码类给出消息“并非所有路径都返回值”
本文关键字:路径 返回值 代码 消息 | 更新日期: 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
,可能意味着您的数据库出了问题。