我必须编写更新用户密码的代码。必须输入用户名(Brugernavn),密码(Adgangskode),新密码和确认密码。代码正在运行,但是UPDATE命令不会更新密码。
直到现在,我已经尝试使用以下代码(我知道应该使用参数化查询,但是我不知道如何编写这样的查询,尽管这是SELECT和UPDATE语句的组合):
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.\\SQLEXPRESS01;Initial Catalog=Vagtplan;Integrated Security=True");
SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM dbo.Login_data WHERE Brugernavn='" + textBox1.Text + "' AND Adgangskode='" + textBox2.Text + "'", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
ErrorProvider errorProvider1 = new ErrorProvider();
errorProvider1.Clear();
if(dt.Rows[0][0].ToString() == "1")
{
if(textBox3.Text == textBox4.Text)
{
SqlDataAdapter sda1 = new SqlDataAdapter("UPDATE dbo.Login_data SET Adgangskode='" + textBox3.Text + "' WHERE Brugernavn='" + textBox1.Text + "' AND Adgangskode='" + textBox2.Text + "'", con);
MessageBox.Show("Adgangskoden er skiftet.", "Bekræftelse", MessageBoxButtons.OK);
}
else
{
errorProvider1.SetError(textBox3, "Adgangskode passer ikke");
errorProvider1.SetError(textBox4, "Adgangskode passer ikke");
}
}
else
{
errorProvider1.SetError(textBox1, "Du har tastet forkert brugernavn");
errorProvider1.SetError(textBox2, "Du har tastet forkert adgangskode");
}
}
预期结果是密码将被更新。
答案 0 :(得分:0)
不要像对Update语句那样使用SqlAdapter,而是像对Select语句那样创建新的SqlCommand。然后在SqlCommand对象上调用ExecuteNonQuery方法。