2013-04-16 19 views
2

我正在使用下面的代码来填充我的组合框以获得更多功能。在类上下文中填充组合框有更好的方法吗?我意识到,如果记录的数量是几千,那么这可能不是最佳做法。从c#组合框的Access表中返回ID值的有效方法

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

回答

2

您用来填充组合框的方法看起来在技术上是正确的。你可能是对的,如果它会导致一个组合框巨大的项目数然后它可能不会很好的在实践中,但这是更多的“UI设计”的问题(即,“正在使用单个组合框是否让用户做出选择的正确选择?“)比”代码设计“(即,”我正在使用组合框,那么将物品放入其中的最佳方式是什么?“ )。

+1

我给你兄弟..答案..! – rummykhan

相关问题