在C#中选择MySQL数据

Lyn*_*rum 1 c# mysql visual-studio-2015

我想使用 C# 登录该程序,使用存储在 phpmyadmin 中的 SQL 数据库中的用户名和密码。这是我到目前为止所拥有的。

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);
            }
        }
Run Code Online (Sandbox Code Playgroud)

它连接到数据库,但我不希望它显示表单1,直到输入有效的用户名和密码。我猜我需要使用 SELECT * FROM 但我不太确定如何去做。

Ash*_*ous 5

您可以使用此方法查看用户名和密码是否匹配

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
Run Code Online (Sandbox Code Playgroud)

只是说,如果您使用类似的查询

cmd.CommandText = "SELECT count(*) from tbUser WHERE UserName = '"+txtusernam +"'";
Run Code Online (Sandbox Code Playgroud)

您将对 SQL 注入持开放态度

警告

正如史蒂夫在评论中提到的那样,明文密码是与字符串连接同等程度的漏洞