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 回答