我需要从列表框中从数据库绑定的选定项中获取值。但是,如果我尝试
listBoxAtribute.SelectedItems[0].ToString()
返回System.Data.DataRowView
有没有办法将数据从DataRowView
转换为string
?
我的想法是这样的:
for(int i = 0; i < listBoxAtribute.SelectedItems.Count; i++)
{
MessageBox.Show(listBoxAtribute.SelectedItems[i].Tostring);
}
非常感谢您的回复。
答案 0 :(得分:0)
首先尝试将列表框的选定项目转换为DataRowItem并访问列值,将列名称传递给索引器
以下是样本
((DataRowView)Listbox.SelectedItem)["<column_name>"].ToString();
答案 1 :(得分:0)
如果要显示第一列值,则将listBox Attribute.SelectedItem的第一项作为
for(int i = 0; i < listBoxAtribute.SelectedItems.Count; i++)
{
MessageBox.Show(listBoxAtribute.SelectedItems[i].Item[0]);
}
答案 2 :(得分:0)
string[] items = listBoxAtribute.SelectedItems.Select(x => x.Item[0]);
答案 3 :(得分:0)
假设您正在看到,即所谓的数据库驱动条目中的单个特定列,这表明您具有列表框集的DisplayMember
属性。假设您在任何地方使用EditValue,也可能是ValueMember
。我会沿着这些方向写点什么。
((DataRowView)listBoxAtribute.SelectedItems[0])[listBoxAtribute.DisplayMember].ToString();
通过这种方式,您可以获得用户在屏幕上看到的内容。现在,如果您想要一个与屏幕上显示的数据不同的数据,则需要使用user968441的方法并对列名进行硬编码。但这也相对容易。