【问题标题】:ComboBox showing System.Data.DataRowView after changing selection更改选择后显示 System.Data.DataRowView 的组合框
【发布时间】:2016-07-05 10:13:43
【问题描述】:

我一直在查看与此类似的所有其他问题,但它们似乎对我的特定问题没有帮助。

我正在使用具有以下属性的组合框:

Combobox 的用途很简单,它获取表中唯一列的所有值,并将它们作为选项呈现。该列的名称是“nim”。

初始化后,组合框加载正常:

在我将选中的项目更改为列表中的第二个,并尝试再次更改后出现问题:

当我尝试选择 System.Data.DataRowView 时,出现以下错误:

我一直在玩代码,但无济于事。我没有写任何关于组合框的代码。我只是从属性窗口手动分配 DataSource、DisplayMember 和 ValueMember。

关于组合框的唯一代码是这些:

private void comboNIM_SelectedIndexChanged(object sender, EventArgs e)
    {
        //selectedNIM = ((DataRowView)comboNIM.SelectedItem).Row["nim"] as String;
        selectedNIM = comboNIM.SelectedValue.ToString();

    }

任何帮助将不胜感激!谢谢!

【问题讨论】:

  • 错误表明您的数据源中已经有一个值“System.Data.DataRowView”。贴出对应的代码“我将选中的项目更改为列表中的第2个并尝试更改后出现问题,并尝试更改它”,问题就在这里,错误显然是正常的。
  • 您好,感谢您的快速回复!该表甚至没有以“System.Data.DataRowView”作为其任何列的值的记录。我不明白“与...对应的代码”是什么意思,但是在我将选择从 1355301050(默认)更改为 1355301051 并尝试更改后,运行时出现了“System.Data.DataRowView”选项再次选择。
  • 嗨,如果可以的话,很高兴为您提供帮助!我清楚地认为您的数据源中没有这样的价值,这就是它有问题的原因!这是一个数据绑定错误或类似的东西,你能把组合框绑定的代码贴出来吗? (数据源数据绑定....)
  • 嗯,因为我从来没有真正写过任何代码来进行数据绑定(我只是通过属性窗口手动完成),我在哪里可以找到代码?

标签: c# winforms combobox


【解决方案1】:

所以...,我找到了解决这个特殊问题的方法。

我删除了 ComboBox,然后创建了一个新的。然后我只是以编程方式分配属性。 cb.DisplayMember = 'nim'; cb.ValueMember = 'nim'; cb.DataSource = mahasiswaBindingSource;

显然,不编辑属性窗口解决了这个问题!

【讨论】:

  • 好!所以我的链接是一个好的开始和提示 :) 祝你有美好的一天!
猜你喜欢
  • 1970-01-01
  • 2015-11-22
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多