2012-12-17 34 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 –