c# - 在 C# 中选择 MySQL 数据

标签 c# mysql visual-studio-2015

我想使用存储在 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/

相关文章:

c# - 有效操作时出现 NullReferenceException

javascript - 如何显示图片

mysql - SQLSTATE[HY000] [1045] 拒绝用户 'homestead' @'localhost' 的访问(使用密码 : YES) in Laravel

php - MySql 使用 Max on Date 进行老化报告并排除特定条件

mysql - VS 2017 和 MySQL : Updated MySQL. 数据到 8.0.11.0 并且我的查询都不起作用

css - Visual Studio 2015 转到缺少 CSS 类的定义

javascript - Visual Studio - Javascript UWP - 通过矢量图形的视觉 Assets

c# - MvvmCross - MvxListView绑定(bind)多次点击

android - 无法使用 Xamarin 和 Visual Studio Community 2015 启动 Android 虚拟设备

c# - 等待 HttpWebRequest.BeginGetResponse 在 Windows Phone 7 中完成