0

我在 VS 2010 和 C# 中对 Combobox 的 Displaymember 有疑问。我有一个表为 T1,父 ID 为 int 和一些其他信息,另一个表为 T2,id 为 int,名称为 varchar(50)。我想使用 T2 作为参考。所以,我的组合框:Binded - T1 Datasource - T2 DisplayMember - T2.Name ValueMember - T2.Id

它不会起作用,我看不出我在哪里做错了。此外,如果我这样做:DisplayMember - T2.Id ValueMember - T2.Id 比它开始工作。

谢谢

4

1 回答 1

0

如果我理解正确,您正在尝试将DisplayMemberandValueMember属性设置为第二个表中存在的两个字段的名称。
DisplayMember并且ValueMember是应该引用绑定到 DataSource 属性的表中的字段的字符串。
如果您将数据源绑定到不包含列出的字段的表,DisplayMember并且ValueMember没有任何内容可以按预期工作

如果您的表与 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";
于 2012-12-17T18:50:41.137 回答