2012-04-05 74 views
0

我具有從數據庫填充數據字段JobCode的組合框排序在組合框的值。還有的jobcode 1000,當用戶需要選擇一個jobcode他必須通過所有的jobcode S IN組合框向下滾動。我能做到這一點的這樣一種方式,如果用戶鍵入的jobcode一些信它會顯示jobcode S的與在列表的頂部在組合框中該字母開頭,這樣用戶可以輕鬆選擇。例如,像在combobox中的keypressevent中添加一些代碼。通過鍵入

用戶必須從jobcode S IN列表中仍然選擇不保留部分或輸入不正確的數據,這將導致在插入和更新的時間錯誤的數據輸入。

public void jobcomboboxload() 
{ 
     OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString); 
     oleDbConnection1.Open(); 
     OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("Select jobpk,jobcode from jobcodemastertable", oleDbConnection1); 
     OleDbDataReader reader = oleDbCommand1.ExecuteReader(); 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("jobpk", typeof(int)); 
     dt.Columns.Add("jobcode", typeof(string)); 
     dt.Load(reader); 
     cmbjobcode.ValueMember = "jobpk"; 
     cmbjobcode.DisplayMember = "jobcode"; 
     cmbjobcode.DataSource = dt.DefaultView; 

     oleDbConnection1.Close(); 
    } 

jobcode是一個獨特的領域。

+1

sreenath :)像你提到的「*請幫助pleaseeeeeeee *」這樣的短語在本網站上沒有被廣泛接受。所以,不要將它們與未來的問題混合在一起。 – Lion 2012-04-05 21:16:55

+0

srry會保重 – 2012-09-02 09:42:31

回答

1
  • 使用cmbjobcode.AutoCompleteMode = AutoCompleteMode.Suggest(或枚舉的其他 值)
  • 使用cmbjobcode.AutoCompleteSource = AutoCompleteSource.ListItems
  • 更改您的查詢,包括條款ORDER BY場上JOBCODE

請不要忘記圍繞您的OleDbConnection,OleDbCommand和OleDbDataReader的語句using。這將確保正確處理前面提到的變量。

對於檢查不完整值,您應該添加驗證事件,並在此情況下,檢查輸入的文本是否存在於您的字符串中。
組合框有一個名爲FindStringExact()方法,可以幫助。

+0

你怎麼做這些點? – phadaphunk 2012-04-05 21:28:42

+0

選擇該行(一次),然後在答案框上按下編號列表或按鈕列表 – Steve 2012-04-05 21:33:13

+0

當您在此處輸入/編輯帖子時,是其中一種格式化選項。在右側的文本框上方。 – 2012-04-05 21:33:31

1

設置你的ComboBoxAutoCompleteMode屬性SuggestAutoCompleteSourceListItems,否則你將無法看到建議。

就像史蒂夫說的,你可以改變你的查詢並在你的請求字段中添加ORDER BY來設置你希望他們在你的SELECT語句中的順序。

希望這有助於如果您有任何問題,請不要猶豫。