当 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; }
}
}
首先,您的方法有一个奇怪的名称,它不会填充任何内容,它只从数据库中获取值,因此它应该是 GetConsoles 或 GetConsolesFromDb 而不是 fillConsoles,但它不是您要查找的答案。
comboBox 的问题在于它的数据源可以是任何类型的对象,那么当它可以是任何类或结构的任何属性时,我们如何设置 comboBox 文本中显示的内容? 我们只需将组合框的 DisplayMember 属性设置为您想要显示的任何属性,在这种情况下,我想它是控制台名称 所以它应该是这样的
comboBox.DataSource = GetConsoles(); //or fillConsoles whichever is the name of your method
comboBox.DisplayMember = "ConsoleName";