Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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# 将数据从一个列表框传输到另一个c_C#_Database_Listbox - Fatal编程技术网

C# 将数据从一个列表框传输到另一个c

C# 将数据从一个列表框传输到另一个c,c#,database,listbox,C#,Database,Listbox,好的,我有两个列表框,一个连接到数据库,另一个不连接 我希望能够将所选项目从连接到数据库的列表框发送到未连接的列表框 我写了这段代码 listBox2.Items.Add(listBox1.SelectedItem); 但是我得到的不是复制 System.Data.DataRowView 有人有什么建议吗?我不打算安装VS来检查.NET库,但我冒昧地猜测您需要进一步的属性来获取值,例如listBox1.SelectedItem.value。您能显示第一个和第二个lsibox声明的代码吗?其他

好的,我有两个列表框,一个连接到数据库,另一个不连接

我希望能够将所选项目从连接到数据库的列表框发送到未连接的列表框

我写了这段代码

listBox2.Items.Add(listBox1.SelectedItem);
但是我得到的不是复制

System.Data.DataRowView

有人有什么建议吗?

我不打算安装VS来检查.NET库,但我冒昧地猜测您需要进一步的属性来获取值,例如listBox1.SelectedItem.value。

您能显示第一个和第二个lsibox声明的代码吗?其他控件具有诸如DisplayName和ValueName之类的属性—设置数据行中的哪些列将显示在列表框中,以及哪些列将被视为值。在您的例子中,问题是第二个lisbox不知道应该在其中显示哪个列

更新:
当listBox2.Items.AddlistBox1.SelectedItem实际执行时,来自DB的原始数据行被复制到第二个listbox。如果要使另一个列表框不与从DB获得的值连接,则需要在放入第二个列表框之前创建它们的副本。

我制作了一个简单的程序:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
        listBox1.Items.Add("1");
        listBox1.Items.Add("2");
        listBox1.Items.Add("3");
    }

    void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        listBox2.Items.Add(listBox1.SelectedItem);
    }
}

而且它工作起来没有问题。因此,我认为您的程序无法运行,因为您的项目类型是System.Data.DataRowView,无法转换为字符串。

这是将列表框加载到另一个列表框并同时从sorce列表框中删除数据的最简单方法

private void CopySelItems(ListBox from, ListBox to)
    {
        for (int i = 0; i < from.SelectedItems.Count; i++)
        {
            to.Items.Add(from.SelectedItems[i].ToString());
        }


    }
int mCount = ListBox1.Items.Count;
for (int i = 0; i <= mCount - 1; i++)
{
    if (ListBox1.Items[i] == ListBox1.SelectedItem)
    {
        ListBox2.Items.Add(ListBox1.SelectedItem);
        ListBox1.Items.Remove(ListBox1.SelectedItem);
        mCount=mCount - 1;
        i=i - 1;
    }
}

我没有任何代码声明列表框是通过gui完成的,但是显示成员是第一个列表框的.title。第二次没有做,因为我不想把它链接到数据库