2

我正在使用以下代码来填充我的组合框以获取更多功能。有没有更好的方法在课堂上下文中填充我的组合框?我意识到,如果记录数以千计,那么这可能不是最佳实践。

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

1 回答 1

2

您用来填充组合框的方法在技术上似乎是正确的。你可能是对的,如果它会导致一个包含大量项目的组合框,那么它在实践中可能效果不佳,但这更多是一个“UI设计”的问题(即,“正在使用单个组合框让用户做出选择的正确选择?”)而不是“代码设计”(即,“我正在使用组合框,那么将项目放入其中的最佳方法是什么?”)。

于 2013-04-16T17:32:13.013 回答