2012-12-17 41 views
0

我在VS 2010和C#中的Combobox显示成员存在问题。 我有一个表作为T1与父id作为int和其他信息和另一个表作为T2作为id作为int和名称为varchar(50)。我想用T2作为参考。 所以,我的组合框: 绑定 - T1 数据源 - T2 DisplayMember - T2.Name ValueMember - T2.IdVS2010 SP1 Combobox显示器成员问题

它不惯于工作,我没有看到,我做了一个错误。 另外,如果我这样做: DisplayMember - T2.Id ValueMember - T2.Id 比它开始工作。

感谢

+0

你也可以说体现了一个ISSU代码示例è? – Pete

+0

我没有添加任何代码。一切都在设计时间内完成。 –

+0

忘了提起它是一个WinForm –

回答

0

如果我理解正确的话,您要设置DisplayMemberValueMember属性出现在第二表中的两个字段的名称。
DisplayMemberValueMember是应该引用绑定到DataSource属性的表中存在的字段的字符串。
如果您绑定的数据源不包含DisplayMemberValueMember没有列出可能的工作领域预期

如果你的表是由PARENTID和ID领域相关的,那么你可以创建一个使用JOIN一个数据源的表表达

SELECT t1.ParentID, t1.Field1, t1.Field2, t2.ID, t2.Name 
FROM t1 LEFT JOIN t2 on t1.ParentID = t2.ID 

,那么你可以设置你的组合框将DisplayMember和ValueMember

combobox1.DisplayMember = "t2.Name"; 
combobox1.ValueMember = "t2.ID"; 
+0

我不能那样做。我使用2个SP来获取数据。为什么如果我将DisplayMember更改为T2.Id,它开始工作? –

+0

好的,但是哪种模式绑定到组合框的数据源属性?用于Diplay和Value的字符串应该是该模式中存在的列的名称。 – Steve

+0

它是一个带来列Id和名称(我称为T2)的SP2 –