好吧,我有2个列表框,其中一个连接到另一个数据库。将数据从一个列表框传输到另一个列表框#
我希望能够将连接到数据库的列表框中的选定项目发送到不是。
香港专业教育学院写了这个代码但是
listBox2.Items.Add(listBox1.SelectedItem);
代替COPYIN我得到“
System.Data.DataRowView
任何人就吃什么建议的项目?
好吧,我有2个列表框,其中一个连接到另一个数据库。将数据从一个列表框传输到另一个列表框#
我希望能够将连接到数据库的列表框中的选定项目发送到不是。
香港专业教育学院写了这个代码但是
listBox2.Items.Add(listBox1.SelectedItem);
代替COPYIN我得到“
System.Data.DataRowView
任何人就吃什么建议的项目?
我不靠近我的VS安装检查.NET库,但是我估计你需要一个更深的属性来获得这个值,比如listBox1.SelectedItem.Value
。
您可以显示第一个和第二个lsibox声明的代码吗?其他控件具有像DisplayName和ValueName这样的属性 - 从数据行中设置哪些列将显示在列表框中,以及哪些将被视为值。在你的情况下,问题是第二个lisbox不知道应该在哪个列中显示。
更新: 当listBox2.Items.Add(listBox1.SelectedItem)
执行实际的原始数据行(这些来自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,不能转换为字符串。
private void CopySelItems(ListBox from, ListBox to)
{
for (int i = 0; i < from.SelectedItems.Count; i++)
{
to.Items.Add(from.SelectedItems[i].ToString());
}
}
这是一个列表框加载到另一个列表框,并在同一时间从SORCE列表框中
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。没有做第二次,因为我不希望它链接到数据库 – Jenny 2010-03-13 15:23:19
@珍妮:看到更新的答案 – 2010-03-13 15:37:43