2

我在更新记录时遇到问题。我想用两个参数一键单击更新 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);
    }

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

4

3 回答 3

2

将您的 SQL 语句更改为:

UPDATE Barang SET Pakai = @Pakai WHERE Nama_Barang in ('Mie Rebus', 'Telor')
于 2013-01-11T09:30:43.327 回答
1

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

这里的关键是 AND。您没有任何 Nama_Barang既是“Mie Rebus”又是“Telor”的行。您正在寻找 Nama_Barang 为“Mie Rebus”“Telor”的行,因此您的 WHERE 子句应为Nama_Barang = 'Mie Rebus' OR Nama_Barang = 'Telor'

于 2013-01-11T09:31:39.600 回答
0

您可以通过将 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);
}

但是,如果您要为许多值执行此操作,那么最好使用

WHERE Nama_Barang IN ('name1','name2', ... ,'name99')

于 2013-01-11T09:34:19.820 回答