1

WinFormプログラムを作成し、フォームにリストボックスと削除ボタンがあります。私のリストボックスは、.mdb(Microsoft Access)ファイルからのデータソース/データバインディングを使用しています。これが私が今使っている削除ボタンのコードです:

private void deletepcsetting_Click(object sender, EventArgs e)
{
    DialogResult dialogResult = MessageBox.Show("Are you sure want to delete PC No " + listBox1.SelectedItem + "?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    if (dialogResult == DialogResult.Yes)
    {
        PCNo selectedPCNo = (PCNo)listBox1.SelectedItem;
        if (selectedPCNo != null)
        {
            OleDbCommand cmd = new OleDbCommand("DELETE FROM ClientListing WHERE PCNO = " + listBox1.SelectedItem + "", GetConnection());
            _pcno.Remove(selectedPCNo);
        }
        GetConnection().Close();
    }
}

メッセージボックスを無視すると、上記のコードはリストボックスからアイテムを正常に削除しますが、データベース(mdb)からは削除しません。フォームを再度開いた後、以前に削除されたアイテムがまだそこにあることに気付くため、この問題が発生します(リストボックスから削除するだけですが、mdbからは削除しません)。

" + listBox1.SelectedItem + "また、削除コマンドをからに変更しようとしまし"selectedPCNo"たが、機能しませんでした。これを実現する方法を知っている人はいますか?

4

2 に答える 2

1

コマンドエグゼキュータはどこにありますか...?

以下の行を追加して、同じことを試してください...。

MessageBox.Show(ListBox1.SelectedItem); //Check whether the Selected Item Rendered or NOT

OleDbCommand cmd = new OleDbCommand("DELETE FROM ClientListing WHERE PCNO = " + listBox1.SelectedItem + "", GetConnection());
cmd.ExecuteNonQuery() // it Executes the query...
_pcno.Remove(selectedPCNo);
于 2013-02-18T14:21:52.910 に答える
0

listBox1.SelectedItemが正しい値を返すことを確認してください。代わりに、SelectedValueを試してみましたか?

于 2013-02-18T14:21:24.827 に答える