Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用来自mdb(MS ACCESS)的数据源删除列表框项_C#_Ms Access_Listbox_Datasource - Fatal编程技术网

C# 使用来自mdb(MS ACCESS)的数据源删除列表框项

C# 使用来自mdb(MS ACCESS)的数据源删除列表框项,c#,ms-access,listbox,datasource,C#,Ms Access,Listbox,Datasource,我创建了一个winform程序,在表单中有一个列表框和删除按钮。我的列表框使用的数据源/数据绑定来自.mdb(Microsoft Access)文件。下面是我现在使用的删除按钮代码: private void deletepcsetting_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Are you sure want to delete PC No " + listBo

我创建了一个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”
,但它不起作用,有人知道如何实现吗?

确保您有listBox1.SelectedItem返回正确的值,您尝试过使用SelectedValue吗?

确保您使用了listBox1.SelectedItem返回正确的值,您尝试过使用SelectedValue吗?

命令执行器在哪里

只需添加下面的行并尝试相同的

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);

命令执行者在哪里

只需添加下面的行并尝试相同的

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);

arghh..我忘记了执行器..谢谢你提醒我..无论如何,现在弹出一个错误,“一个或多个必需参数没有给定值”。@ZulfakarZukri显示一个消息框,并确认所选项目是否正确呈现。。。MessageBox.Show(列表框1.SelectedItem)。。。你能给我列出你的列表框中列出的项目吗。。。?在数据库表中,字段PCNO有什么值?问题解决了,我只是将“listBox1.SelectedItem”更改为“pcno.Text”,这是文本框中的值,同时将数据绑定到该文本框中(无论如何,在按下编辑按钮之前,我将文本框属性设置为禁用。。无论如何,感谢您提醒我有关执行者。。谢谢列表框上的项目是来自mdb文件字段PCNO的数字,值为1,2,3,等等。。arghh。。我忘记了执行者。。感谢您提醒我。。无论如何,现在弹出的是一个错误“一个或多个必需参数没有给定值。”@ZulfakarZukri显示一个消息框,并确认所选项目是否正确呈现…MessageBox.Show(ListBox1.SelectedItem)…然后尝试相同的方法…您能列出列表框中列出的项目吗…?在数据库表中,字段PCNO有什么值…?问题已经解决,我只是将“listBox1.SelectedItem”更改为“PCNO.Text”,这是文本框中的值,同时将数据绑定到该文本框中(无论如何,在按下编辑按钮之前,我将文本框属性设置为禁用。。无论如何,感谢您提醒我执行者。。谢谢列表框上的项目是一个来自mdb文件字段PCNO的数字,值为1,2,3,等等。我认为所选值不正确,因为消息框显示如下..”是否确实要删除PC No Platinum_Server.PCNo?“我认为所选的值不正确,因为消息框显示如下..“是否确实要删除PC No Platinum_Server.PCNo?”