繁体   English   中英

方法什么都不返回?

[英]Method not returning anything?

我检查数据库登录详细信息的方法似乎未返回任何内容。 我看不出有什么问题。 这是代码:

connection.Open();
        if (chkRemember.Checked == true)
        {
            loginDetails();
        }
        string command = @"SELECT email, password FROM zc_users WHERE email = '@user';";
        try
        {
            // COMMAND DETAILS
            MySqlCommand email = new MySqlCommand(command, connection);

            // PARAMETERS
            email.Parameters.AddWithValue("@user", txtEmail.Text);

            // READER DETAILS
            MySqlDataReader dr;

            // CHECK DETAILS               
            dr = email.ExecuteReader();

            if (dr.Read())
            {
                string passwordC = dr.GetString(1);
                string saltedPass = Security.HashSalt.CreateHash(txtPassword.Text, passwordC);
                bool match = IsPasswordMatch(passwordC, saltedPass);
                if (match == true)
                {
                    connection.Close();
                    string email2 = txtEmail.Text;
                    frmZilent frm = new frmZilent(email2);
                    frm.Show();
                    this.Hide();
                }
                else
                {
                    msgEx m = new msgEx();
                    m.Show();
                    connection.Close();
                }
            }

            connection.Close();
        }
        catch (MySqlException ex)
        {
            MessageBox.Show("Zilent Error: Code ZCx001. Please report this to the Zilent Team. Thanks. " + ex.Message);
            connection.Close();
        }
    }

基本上,从数据库中选择电子邮件和密码,然后使用数据库中的密码对txtPassword文本框中的密码进行哈希处理。 该方法检查它们是否相同,如果相同,则关闭连接并显示下一个表单。

我或者得到一个错误或者什么也没有发生。 有任何想法吗?

您的SQL在字符串文字中包含参数,因此该参数被解释为字符串文字,因此不会使用该值

你有:

 SELECT email, password FROM zc_users WHERE email = '@user';

改成:

 SELECT email, password FROM zc_users WHERE email = @user;

请注意,第二个版本中省略了撇号。

暂无
暂无

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

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