代码正在运行,但UPDATE命令不会更新表中的数据

时间:2019-04-27 14:48:01

标签: c# sql-server winforms sql-update

我必须编写更新用户密码的代码。必须输入用户名(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");
        }

    }

预期结果是密码将被更新。

1 个答案:

答案 0 :(得分:0)

不要像对Update语句那样使用SqlAdapter,而是像对Select语句那样创建新的SqlCommand。然后在SqlCommand对象上调用ExecuteNonQuery方法。