验证c#中的用户名和密码

时间:2016-04-08 00:19:08

标签: c# mysql database

我是c#和视觉工作室的新手,我正在创建一个需要用户名和密码才能登录的Windows窗体应用程序。我已经成功实现了数据库以注册用户但似乎无法使登录工作。下面的代码中有两个错误:

 private void btnLogin_Click(object sender, EventArgs e)
 {
     MySqlConnection con = new MySqlConnection();
     con.ConnectionString = "datasource=127.0.0.1;port=3306;username=root;password=;";

     Int32 verify;
     string query1 = "Select count(*) from Login where Username='" + Username.Text + "' and Password='" + Password.Text + "' ";
     MySqlCommand cmd1 = new MySqlCommand(query1, con);
     con.Open();
     verify = Convert.ToInt32(cmd1.ExecuteScalar());
     con.Close();

     if (verify > 0)
     {
         new FormMainMenu().Show();
         this.Hide();
     }
     else
     {
         MessageBox.Show("Username or Password is Incorrect")
     }
 }

Username.TextPassword.Text都加下划线并标明名称

  

在当前上下文中不存在。

如果有人对此有任何解决方案,我将非常感激。谢谢

2 个答案:

答案 0 :(得分:0)

你可以试试这个,你只需要改变与MYSQL Connector的连接。

public int GetScalarValue()
        {
            int result = 0;
            using (SqlConnection cn = new SqlConnection("CONECTION_STRING"))
            {
                cn.Open();
                using (SqlCommand cmd = new SqlCommand("select count(*) from login where username=@login and password=@password")) {
                    cmd.Parameters.Add("@login", SqlDbType.VarChar).Value = Username.Text;
                    cmd.Parameters.Add("@password", SqlDbType.VarChar).Value = Password.Text;
                    result = int.Parse(cmd.ExecuteScalar().ToString());
                }
            }
            return result;
        }

答案 1 :(得分:0)

这是验证密码的基本且简单的方法,如果您是初级程序员,则很容易理解。它会检查输入密码字符串中的最小长度,数字,小写字母,大写字母和特殊字符。

private bool ValidPass(string pass)
{
    bool passLength = false, hasDigit = false, hasUpper = false, hasLower = false, hasSpecialChar = false;

    if (pass.Length >= 6)
        passLength = true;

    foreach (char c in pass)
    {
        if (char.IsDigit(c))
            hasDigit = true;

        else if (char.IsUpper(c))
            hasUpper = true;

        else if (char.IsLower(c))
            hasLower = true;
    }

    string specialChar = "\\/~!@#$%^&*()-_+={[]};:'\"|,<.>?";
    foreach (char c in specialChar)
    {
        if (pass.Contains(c))
            hasSpecialChar = true;
    }

    if (passLength && hasDigit && hasUpper && hasLower && hasSpecialChar)
        return true;

    return false;
}