2014-12-06 261 views
0

我有一個類庫,在那裏我得到我需要的是填充組合框時的填充方法是在類庫

public List<Consoles> fillConsole() 
     { 

      var consoles = new List<Consoles>(); 

      if (!DatabaseConnection.IsOpen) 
      { 
       DatabaseConnection.Open(); 
      } 
      OracleCommand cmd = new OracleCommand(); 
      cmd.Connection = DatabaseConnection.Connection; 

      string str = "SELECT consolename FROM Console"; 

      cmd.CommandText = str; 

      OracleDataReader dr = cmd.ExecuteReader(); 
      List<String> list = new List<string>(); 

      while (dr.Read()) 
      { 
       var console = new Consoles(); 
       console.ConsoleName = dr["Consolename"].ToString(); 
       consoles.Add(console); 
      } 

       DatabaseConnection.Close(); 

       return consoles; 
      } 

我想知道我怎麼可以添加此組合框的數據數據到組合框在我的表單加載頁面時,我似乎得到的所有組合框是集合或System.Collections.Generic.List`1 [ClassLibraryGameSite.Consoles

如果我的填充代碼也是錯誤的有人請告訴我什麼謝謝。

Console類:

public class Consoles 
    { 
     private int consoleId; 
     private String consoleName; 

     public String ConsoleName 
     { 
      get { return consoleName; } 
      set { consoleName = value; } 
     } 

     public int ConsoleId 
     { 
      get { return consoleId; } 
      set { consoleId = value; } 
     } 
    } 
+1

我不知道'Consoles'類是什麼但無論是覆蓋'的ToString()'在它返回要顯示,或設置'DisplayMember'屬性的組合框,或使用字符串,而不是'Consoles'列表值。 – 2014-12-06 19:00:09

+0

你也可以顯示'控制檯'類嗎? – 2014-12-06 19:05:57

+0

看到這個:http://stackoverflow.com/questions/3063320/combobox-adding-text-and-value-to-an-item-no-binding-source – Jauch 2014-12-06 19:18:50

回答

1

所有的方法首先有一個奇怪的名字,它不填寫任何東西它只是從數據庫中獲取的值,以代替fillConsoles的應該是GetConsoles或GetConsolesFromDb但而不是你正在尋找的答案。


具有ComboBox的事情是,它的數據源可以是任何類型的對象,我們因此如何設置究竟會在組合框中的文本顯示時,它可以是任何類或結構的任何財產?我們只需設置ComboBox的DisplayMember屬性到whareever要顯示屬性在這種情況下,我想這是ConsoleName因此,它應該是這樣的

comboBox.DataSource = GetConsoles(); //or fillConsoles whichever is the name of your method 
comboBox.DisplayMember = "ConsoleName";