删除使用来自mdb(MS ACCESS)的DataSource的列表框项
本文关键字:DataSource 列表 ACCESS MS mdb 删除 | 更新日期: 2023-09-27 17:59:48
我创建了一个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)。
我还试图将delete命令从" + listBox1.SelectedItem + "
更改为"selectedPCNo"
,但没有成功,有人知道如何实现吗?
命令执行器在哪里。。。?
只需添加下面的行并尝试相同的操作。。。。
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);
确保您有listBox1.SelectedItem返回正确的值,您是否尝试使用SelectedValue?