winforms C# UI和MYSQL DB中的双重数据输入

mefy6pfw  于 2022-11-17  发布在  C#
关注(0)|答案(1)|浏览(117)

我创建一个新的注册页面成功。每当我输入用户名和密码,并点击提交按钮,它保存的凭据,但这里的问题是两次输入的数据。

private void sbmtbtn_Click(object sender, EventArgs e)
    {
        if (usrnmtxtbx.Text != "")
        {
            if (pswdtxtbx.Text != "")
            {
                if (cnfrmtxtbx.Text != "")
                {
                    if (pswdtxtbx.Text == cnfrmtxtbx.Text)
                    {
                        MySqlConnection Con = new MySqlConnection(ConnectionString);
                        MySqlCommand Cmd;
                        Con.Open();
                        try
                        {
                            Cmd = Con.CreateCommand();
                            Cmd.CommandText = "INSERT IGNORE INTO signup(username, password,confirm) VALUES(@username,@password,@confirm)";
                            Cmd.Parameters.Add("@username", MySqlDbType.VarChar).Value = usrnmtxtbx.Text;
                            Cmd.Parameters.Add("@password", MySqlDbType.VarChar).Value = pswdtxtbx.Text;
                            Cmd.Parameters.Add("@confirm", MySqlDbType.VarChar).Value = cnfrmtxtbx.Text;

                            DataTable table = new DataTable();
                            MySqlDataAdapter adapter = new MySqlDataAdapter();
                            adapter.SelectCommand = Cmd;
                            adapter.Fill(table);
                            Cmd.ExecuteNonQuery();
                            MessageBox.Show("Your Account resgistred Successfully", "information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                        finally
                        {
                            Con.Close();
                        }
                    }
               } 
          }
     }
 }

输出:

确认用户名密码
1你好123 123
2你好123 123

hjzp0vay

hjzp0vay1#

Cmd.ExecuteNonQuery();将该行插入表中; DataTableMySqlDataAdapter是完全不必要的(并且复制了数据);您应该删除该代码。
此外,将用户密码直接存储在数据库中是一个非常糟糕的主意,应该完全避免。请研究“密码哈希”和“salting”,并安全地存储密码。理想情况下,您可以使用现有的ASP.NET标识系统,而避免构建自己的标识系统。
一些现有答案:

相关问题