ComboBox.DisplayMember无效

时间:2015-11-25 18:14:38

标签: c# winforms combobox

我正在尝试使用通过SQLDataAdapter从SQL返回的DataTable来填充组合框。

组合框条目应显示为VendorName列中的字符串,但它们显示为ID列中的整数。

有人能发现我错过的东西吗?

DataTable vendors = sql.GetData("SELECT id, VendorName FROM Vendors ORDER BY VendorName", "Q");

drpVendor.DataSource = vendors;
drpVendor.DisplayMember = "VendorName";
drpVendor.ValueMember = "id";
drpVendor.SelectedIndex = 0;

enter image description here

我已经通过将其指定为DataGridView的DataSource来验证DataTable供应商的内容,如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

问题的根源是this问题,Visual Studio 2010没有显示运行时错误。一旦在Debug>中更正了例外> CLR ...运行时错误使我能够识别以下问题。

drpVendor.DataSource = vendors;

在调用此行之后,正在尝试更改DataGridView的只读列的drpVendor_SelectedIndexChanged事件。

由于没有抛出CLR异常,代码在此行之后崩溃,使组合框显示默认的“id”列。