我正在使用以下代码来填充我的组合框以实现进一步的功能。有没有更好的方法在类上下文中填充我的组合框?我意识到,如果记录数量达到数千,那么这可能不是最佳实践。
private void Form1_Load(object sender, EventArgs e)
{
Book myBook = new Book;
myBook.Connect();
comboBox1.DataSource=myBook.IDs();
}
class Book
{
OleDbCommand Comm;
OleDbConnection Conn;
OleDbDataReader Reader;
string queryString;
public void Connect()
{
Conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Book.accdb");
}
public List<string> IDs()
{
string singleID = null;
List<string> IDs = new List<string>();
queryString = "Select bID from Books";
Comm = new OleDbCommand(queryString, Conn);
Reader = Comm.ExecuteReader();
while (Reader.Read())
{
singleID = Reader[0].ToString();
IDs.Add(singleID);
}
Conn.Close();
Reader.Close();
return IDs;
}
}
最佳答案
您用来填充组合框的方法在技术上似乎是正确的。您可能是对的,如果它会导致一个包含大量项目的组合框,那么它在实践中可能效果不佳,但这更多是“UI 设计”的问题(即, “使用单个组合框是让用户做出选择的正确选择吗?”)而不是“代码设计”(即,“我正在使用组合框,那么什么是将元素放入其中的最佳方式?”)。
关于c#-4.0 - 从 C# 组合框的 Access 表返回 ID 值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16039369/