Windows表单listbox.selecteditem显示“System.Data.DataRowView”而不是实际值

时间:2013-04-15 02:21:09

标签: c# asp.net

我正在Visual Studio 2010中创建一个Windows窗体应用程序。我有一个Access数据库,其中有一个表'ResearcherInfo'。

在我的Windows窗体中,我有一个列表框,其中填充了此表的列名“Researcher Name”的内容。

但是当我尝试获取此文本框的选定项时,它只返回一个空值或有时返回System.Data.DataRowView,具体取决于我如何访问它

我试过了

    string name = projectmembers_lst.SelectedItem.ToString();

当我将鼠标悬停在'projectmembers_lst'字样上时调试时,它正确显示我projectmembers_lst = {SelectedItem =“Jerome”}

但是将鼠标悬停在字符串'name'上时,会显示“name =”System.Data.DataRowView“”

我甚至尝试复制到数组

    foreach (Object selecteditem in projectmembers_lst.SelectedItems)
    {

        object[] objCollection = new object[projectmembers_lst.SelectedItems.Count];

        projectmembers_lst.SelectedItems.CopyTo(objCollection, 0);

        MessageBox.Show(objCollection[0] as string);
    }

没有什么能让我获得所选项目。我不确定这里有什么问题。

填充列表框:

1)我添加了访问表'ResearcherInfo'。作为Web表单应用程序的数据源。

2)在Listbox的属性中,在Datasource选项卡下,我链接了这个表,并将Listbox的display member和value member属性作为表的列名'Researcher Name'。

所以基本上我的列表框显示了研究员信息表中的研究员名称。附件是快照。 enter image description here

1 个答案:

答案 0 :(得分:0)

没有看到你如何填充它,很难猜测。

尝试((objCollection [0] as DataViewRow)[0] as string