繁体   English   中英

C#.Net和MySQL数据库登录错误如何修复

[英]C#.Net & MySQL Database Login error how to fix

专业开发人员,我在c#.net中的代码有问题,我知道您可以为我提供帮助。 问题出在登录代码中,每次我输入数据库中存在的值时都会说“用户名或密码不正确”,而当我输入数据库中不存在的值时,它再次说“用户名或密码是错误”,请帮我谢谢。

我试图编辑查询并删除星号中的打开关闭,但输出是相同的。

public void checkLoginAccount()
    {
        frmMain frmLogin = new frmMain();
        con = new MySqlConnection();
        con.ConnectionString = "server=localhost;userid=root;password=alpine;port=3305;database=pos_db;pooling=false;SslMode=none";

        con.Open();
        string qry = "SELECT COUNT(*) FROM pos_db.tbllogin WHERE BINARY Username=@user AND BINARY Password=@pass";
        MySqlCommand cmd = new MySqlCommand(qry, con);
        cmd.Parameters.AddWithValue("@user", frmLogin.txtUsername.Text);
        cmd.Parameters.AddWithValue("@pass", frmLogin.txtPassword.Text);

        int count = Convert.ToInt32(cmd.ExecuteScalar());

        if (count != 0)
        {   
            MessageBox.Show("Welcome");
        }
        else
        {
            MessageBox.Show("Either username or password is incorrect!");
            return;
        }
        con.Close();
        con.Dispose();
    }

您正在函数中创建一个新的表单实例:

 frmMain frmLogin = new frmMain();

因此,用户名和密码在此处始终为空:

cmd.Parameters.AddWithValue("@user", frmLogin.txtUsername.Text);
cmd.Parameters.AddWithValue("@pass", frmLogin.txtPassword.Text);

您需要使用正确的表单实例。

尝试读取行并计数代码。 看起来应该像这样:

string qry = "SELECT Username FROM pos_db.tbllogin WHERE BINARY Username=@user AND BINARY Password=@pass";
        MySqlCommand cmd = new MySqlCommand(qry, con);
        cmd.Parameters.AddWithValue("@user", frmLogin.txtUsername.Text);
        cmd.Parameters.AddWithValue("@pass", frmLogin.txtPassword.Text);

        mySqlDataReader reader = cmd.ExecuteReader();
        if(reader.Read() == true)
        {
            MessageBox.Show("Welcome");
        }
        else
        {
            MessageBox.Show("Either username or password is incorrect!");
            return;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM