我是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.Text
和Password.Text
都加下划线并标明名称
在当前上下文中不存在。
如果有人对此有任何解决方案,我将非常感激。谢谢
答案 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;
}