Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# 将数据从Listbox1复制到Listbox2_C#_Mysql_Listbox_Selecteditem - Fatal编程技术网

C# 将数据从Listbox1复制到Listbox2

C# 将数据从Listbox1复制到Listbox2,c#,mysql,listbox,selecteditem,C#,Mysql,Listbox,Selecteditem,在c中,我有一个列表框1,如下所示: lstCorsoAll.DisplayMember = "description"; lstCorsoAll.ValueMember = "id"; lstCorsoAll.DataSource = dtData; 其中dtData是一个数据表,用于SQL查询 我想用按钮将所选项目从listbox1复制到listbox2 如果我使用此代码: foreach (object item in listBox1.SelectedItems) { list

在c中,我有一个列表框1,如下所示:

lstCorsoAll.DisplayMember = "description";
lstCorsoAll.ValueMember = "id";
lstCorsoAll.DataSource = dtData;
其中dtData是一个数据表,用于SQL查询

我想用按钮将所选项目从listbox1复制到listbox2

如果我使用此代码:

foreach (object item in listBox1.SelectedItems)
{
    listBox2.Items.Add(item);
}
在listbox2中,我始终获得System.data.datarowview,因为listbox1.SelectedItems是datarowview

所以我用了:

listbox2.DataSource = listbox1.SelectedItems;
listbox2.DisplayMember = listbox1.DisplayMember;
listbox2.ValueMember = listbox1.ValueMember; 
它工作正常,我得到了正确的显示值,但如果重复该操作,我从listbox1中选择一个新值并按下按钮,listbox2中的项目总是相同的,listbox2不会更新

在此之后,我想使用listbox2 items valueMember作为MySQL表上的键,将listbox2中的项保存到DB中

你能帮我吗?!
非常感谢

列表框没有检测到您更改了数据源。它只会在数据源发生更改时刷新,因此请先将数据源设置为null:

listBox1.DataSource = null;
listBox1.DataSource = data;
您还可以清除这些项,然后再次设置数据源:

listBox1.Items.Clear();
listBox1.DataSource = data;