2014-12-06 405 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";