C# 在sql server的1列中使用2个参数更新多行

C# 在sql server的1列中使用2个参数更新多行,c#,sql-server,C#,Sql Server,我在更新记录时遇到问题。我想用两个参数单击一个按钮更新1列中的2条记录。代码如下: private void Button_Click(object sender, EventArgs e) { int use = Convert.ToInt32(textBox1.Text); perintahsql = new SqlCeCommand("UPDATE Barang SET Pakai = @Pakai WHERE Nama_Barang = 'Mie

我在更新记录时遇到问题。我想用两个参数单击一个按钮更新1列中的2条记录。代码如下:

private void Button_Click(object sender, EventArgs e)
    {
        int use = Convert.ToInt32(textBox1.Text);

        perintahsql = new SqlCeCommand("UPDATE Barang SET Pakai = @Pakai WHERE Nama_Barang = 'Mie Rebus' AND Nama_Barang = 'Telor'", koneksi);
        perintahsql.Parameters.Clear();
        perintahsql.Parameters.AddWithValue("@Pakai", use);
    }

如何克服这个问题?谢谢。

将SQL语句更改为:

UPDATE Barang SET Pakai=@Pakai WHERE Nama_Barang in('Mie Rebus','Telor'))

您的WHERE子句正在查找
Nama_Barang='Mie Rebus'和Nama_Barang='Telor'所在的行。


关键是和这里。您没有任何行,其中Nama_Barang既是“Mie Rebus”又是“Telor”。您正在查找Nama_Barang是“Mie Rebus”或“Telor”的行,因此where子句应该是
Nama_Barang='Mie Rebus'或Nama_Barang='Telor'

您可以通过将where子句中的AND更改为or运算符来完成此操作

private void Button_Click(object sender, EventArgs e)
{
    int use = Convert.ToInt32(textBox1.Text);

    perintahsql = new SqlCeCommand("UPDATE Barang SET Pakai = @Pakai WHERE Nama_Barang = 'Mie Rebus' OR Nama_Barang = 'Telor'", koneksi);
    perintahsql.Parameters.Clear();
    perintahsql.Parameters.AddWithValue("@Pakai", use);
}
然而,如果您要为许多值执行此操作,那么最好使用它

其中Nama_Barang在('name1'、'name2'、…、'name99'中)


你有什么问题?