我正在成功創建一個新的注冊頁面。每當我輸入用戶名和密碼并點擊提交按鈕時,它都會保存憑據,但這里的問題是兩次輸入該資料。
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();
}
}
}
}
}
}
輸出 :
idsignup 用戶名 密碼 確認
1 你好 123 123
2 你好 123 123
uj5u.com熱心網友回復:
Cmd.ExecuteNonQuery();將行插入表中;這就是您需要的所有代碼。和完全沒有必要(并且復制資料)DataTable;MySqlDataAdapter您應該洗掉該代碼。
此外,將用戶的密碼直接存盤在資料庫中是一個非常糟糕的主意,應該完全避免。請研究“密碼散列”和“加鹽”并安全存盤密碼。理想情況下,您可以使用現有的 ASP.NET 身份系統并避免構建自己的身份系統。
一些現有的答案:
- 如何散列密碼?
- 如何散列用戶的密碼?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/506806.html
