当 fill 方法位于类库中时填充组合框

本文关键字:填充 组合 类库 方法 fill 于类库 | 更新日期: 2023-09-27 18:33:18

我有一个类库,我可以在其中获取组合框所需的数据,即

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

如果我的填充代码错误,也可以有人告诉我谢谢。

控制台类:

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; }
        }
    }

当 fill 方法位于类库中时填充组合框

首先,您的方法有一个奇怪的名称,它不会填充任何内容,它只从数据库中获取值,因此它应该是 GetConsoles 或 GetConsolesFromDb 而不是 fillConsoles,但它不是您要查找的答案。


comboBox 的问题在于它的数据源可以是任何类型的对象,那么当它可以是任何类或结构的任何属性时,我们如何设置 comboBox 文本中显示的内容? 我们只需将组合框的 DisplayMember 属性设置为您想要显示的任何属性,在这种情况下,我想它是控制台名称 所以它应该是这样的

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