2013-04-16 18 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

相關問題