首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

listBox绑定到DataSet有关问题

2012-02-01 
listBox绑定到DataSet问题我用一个listBox1绑定到DataSet,用下面的办法listBox1.DataSourceds1.Tables[0]

listBox绑定到DataSet问题
我用一个listBox1绑定到DataSet,用下面的办法
listBox1.DataSource   =   ds1.Tables[0];
listBox1.DisplayMember   =   ds1.Tables[0].Columns[1].ToString();
listBox1.ValueMember   =   ds1.Tables[0].Columns[1].ToString();
然后我用一个按钮把listBox1里的数值全部复制到listBox2里,按钮事件代码是:
this.listBox2.Items.Clear();
for   (int   i   =   0;   i   <   this.listBox1.Items.Count;   i++)
{
this.listBox2.Items.Add(this.listBox1.Items[i]);
}

但复制过去的是数值变成了System.Data.DataRowView

我记得listBox绑定到SqlDataReader,用这个办法是可以的,但绑定到DataSet为什么就不行了呢.请高手告诉我按钮事件应该怎么写.谢谢了

[解决办法]
这样写:
Object s = this.listBox1.Items[i];
this.listBox2.Items.Add(this.listBox1.GetItemText(s));
[解决办法]
this.listBox2.Items.Add(this.listBox1.Items[i].ToString());
[解决办法]
在ListBox绑定数据源后,它只是把数据行加到了ListBox.Items,为了显示内容及可以取到选中的值,所以才设置了DisplayMember 及ValueMember,如果对一个ListBox进行Items的复制,少了这两个属性,ListBox就不知道要显示什么了,只能调用Items中的每一个Item的默认的ToString()来显示,因为Item是DataRowView类型的,DataRowView类型的ToString就是返回DataRowView,所以才出现了你看到的现象.
[解决办法]
this.listBox2.Items.Add(this.listBox1.Items[i].ToString());

LS正确

热点排行