使用名称二列更新访问数据库中的数据

时间:2014-08-22 21:39:12

标签: c# ms-access-2010 insert-update

使用名称二列

更新访问数据库中的数据

因为一列具有相同的数据,因为SerialNumber和Start可以重复

使所有行中的更新具有相同的数据

我使用此代码,但我有语法错误

private void button3_Click(object sender, EventArgs e)
    {

        try
        {


            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            string query = "update Timer set Stop='" + label1.Text + "'where (SerialNumber,Start)='" + comboBox1.Text + "','" + textBox1.Text + "' ";

            command.CommandText = query;
            command.ExecuteNonQuery();
            MessageBox.Show("Data saved");

            connection.Close();
            send_data f2 = new send_data(comboBox1.Text,label2.Text);
            f2.ShowDialog();
        }
        catch (Exception ex)
        {
            MessageBox.Show("ERORR" + ex);

        }
    }

1 个答案:

答案 0 :(得分:1)

WHERE子句的正确语法是

 WHERE fieldname operator value AND/OR fieldname operator value ....

因此更新该记录的正确方法是

string query = @"update Timer set Stop=? where SerialNumber = ? AND Start = ?";
command.CommandText = query;
command.Parameters.AddWithValue("@p1", label1.Text);
command.Parameters.AddWithValue("@p2", comboBox1.Text );
command.Parameters.AddWithValue("@p3", textBox1.Text);
command.ExecuteNonQuery();

请注意,在WHERE关键字之前需要一个空格,我已经更改了代码以使用更安全的参数化方法而不是字符串连接