C# c无法将类型chromium3.Loginuser转换为“bool”
您好,我正在创建简单登录。当单击按钮1时,它应该验证它,但如果我执行bool r=validate\u login用户,则通过;如果在该按钮上单击r,则i get无法隐式地将类型“chromium3.LoginUser”转换为“bool” 欢迎提供任何建议。谢谢 我尝试过:将bool更改为LoginUser 私有登录用户验证\u登录字符串用户,字符串传递 { db_连接; MySqlCommand cmd=新的MySqlCommand; cmd.CommandText=从表2中选择*,其中username=@user和password=@pass和UserID=@UserID; cmd.Parameters。AddWithValue@user使用者 cmd.Parameters。AddWithValue@pass通过 cmd.Connection=connect; LoginUser usr=新的LoginUser; MySqlDataReader login=cmd.ExecuteReader; 如果登录,请阅读 { usr.UserID=login[UserID].ToString; usr.valid=true; } 返回usr; } 私有无效按钮1\u单击对象发送者,事件参数e { { 字符串user=usertype.Text; 字符串pass=password.Text; 如果用户==| |通过== { MessageBox.Show检测到空字段!请填写所有字段; 回来 } bool r=validate\u login用户,pass;//问题行 如果r { LoginUser usr=新的LoginUser; usr=验证用户,通过; 如果usr有效 { MySqlCommand cmd=新的MySqlCommand; MySqlDataReader=cmd.ExecuteReader; Console.WriteLineString.Format{0},usr.UserID; UserDetails.m_gnUserId=Convert.ToInt32reader[UserID]; } } } }C# c无法将类型chromium3.Loginuser转换为“bool”,c#,mysql,C#,Mysql,您好,我正在创建简单登录。当单击按钮1时,它应该验证它,但如果我执行bool r=validate\u login用户,则通过;如果在该按钮上单击r,则i get无法隐式地将类型“chromium3.LoginUser”转换为“bool” 欢迎提供任何建议。谢谢 我尝试过:将bool更改为LoginUser 私有登录用户验证\u登录字符串用户,字符串传递 { db_连接; MySqlCommand cmd=新的MySqlCommand; cmd.CommandText=从表2中选择*,其中use
它应该验证凭据是否正常,并将usersID保存到UserDetails类。据我所知,此代码可以解决您的问题
private LoginUser validate_login(string user, string pass)
{
db_connection();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "Select * from table2 where username=@user and password=@pass and UserID=@UserID";
cmd.Parameters.AddWithValue("@user", user);
cmd.Parameters.AddWithValue("@pass", pass);
cmd.Connection = connect;
LoginUser usr = null;
MySqlDataReader login = cmd.ExecuteReader();
if (login.Read())
{
usr = new LoginUser();
usr.UserID = login["UserID"].ToString();
usr.valid = true;
}
return usr;
}
private void button1_Click(object sender, EventArgs e)
{
{
string user = usertype.Text;
string pass = password.Text;
if (user == "" || pass == "")
{
MessageBox.Show("Empty Fields Detected ! Please fill up all the fields");
return;
}
var r = validate_login(user, pass); //problem line
if (r != null)
{
if (r.valid)
{
MySqlCommand cmd = new MySqlCommand();
MySqlDataReader reader = cmd.ExecuteReader();
Console.WriteLine(String.Format("{0}", r.UserID));
UserDetails.m_gnUserId = Convert.ToInt32(reader["UserID"]);
}
}
}
}
validate_login返回LoginUser实例,而不是布尔值。此外,为什么连续两次调用validate_login?只是一个错误,忘记了删除它。有没有办法解决这个问题?也许我误解了这个问题,但不应该是这样的,只要删除bool和if r部分。永远不要将密码存储为明文salt并对其进行散列。AddWithValue通常也被认为是个坏主意。