使用名称二列
更新访问数据库中的数据因为一列具有相同的数据,因为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);
}
}
答案 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关键字之前需要一个空格,我已经更改了代码以使用更安全的参数化方法而不是字符串连接