我想使用存储在 phpmyadmin 中的 SQL 数据库中的用户名和密码使用 C# 登录该程序。 这是我目前所拥有的。
private void button1_Click(object sender, EventArgs e)
{
MySqlConnection connection;
string server = "localhost";
string database = "login";
string uid = "root";
string password = "";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
try
{
connection.Open();
if (connection.State == ConnectionState.Open)
{
connection.Close();
Form1 frm = new Form1(this);
frm.Show();
Hide();
}
else
{
MessageBox.Show("Database Connection Failed", "Epic Fail", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}
}
catch (Exception ex)
{
MessageBox.Show("An Error Occured, Try again later.", "Epic Fail", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
}
}
它连接到数据库,但是我不希望它显示 form1,直到输入了有效的用户名和密码。 我猜我需要使用 SELECT * FROM 但我不确定如何去做。
最佳答案
可以通过这种方式查看用户名和密码是否匹配
MySqlCommand cmd = dbConn.CreateCommand();
cmd.CommandText = "SELECT count(*) from tbUser WHERE UserName = @username and password=@password";
command.Parameters.Add("@username", txtUserName.Text);
command.Parameters.Add("@password", txtPassword.Text);
var count = cmd.ExecuteScalar();
if(count>0)
//Logged In
只是说,如果你使用这样的查询
cmd.CommandText = "SELECT count(*) from tbUser WHERE UserName = '"+txtusernam +"'";
您将对 SQL 注入(inject)持开放态度
警告
正如史蒂夫在评论中提到的,明文密码是一个与字符串连接强度相同的漏洞
关于c# - 在 C# 中选择 MySQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933496/