2

レコードの更新に問題があります。2つのパラメーターを使用して、1回のボタンクリックで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 に答える