2013-04-08 186 views
5

我想提出一個Windows窗體中,我有一個組合框,到我所加載的一些「發票編號」,從SQL Server 2010 我要顯示發票編號作爲用戶類型進入組合框。 對於例如,如果用戶類型「100」,則發票編號與「100」啓動應顯示在下拉。搜索組合框像谷歌搜索

請幫幫忙, 在此先感謝...

+0

可能重複: 檢查這個 http://stackoverflow.com/questions/11780558/c-sharp-winforms-combobox-dynamic-autocomplete – 2013-04-08 12:36:05

回答

8
DataTable temp; 
    DataTable bank; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 

     temp = DbRdRw.SqlDbRead("Select * from BankMaster", "BankMaster"); 

     DataView dtview = new DataView(temp); 
     dtview.Sort = "BankName DESC"; 
     bank = dtview.ToTable(); 

     comboBox1.DataSource = bank; 
     comboBox1.ValueMember = "BankName"; 
     comboBox1.DisplayMember = "BankName"; 
    } 
+1

我試過這個代碼,它的工作... 感謝所有誰試圖回答我的問題... – Sam 2013-04-09 07:48:11

1

你需要做的是:

  • 每次獲取事件的用戶類型的字符在文本框。
  • 有此事件上運行的函數讀取框的內容(在你的榜樣「100」)和火查詢給您的數據庫,例如:

    SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'

  • 顯示將結果匹配回組合框供用戶選擇。
+0

是不是在MSSQL'*'的'而不是'%? – EaterOfCode 2013-04-08 12:39:06

+1

我已經在SQL Server 2010中成功使用過'%'至少 – snappieT 2013-04-08 12:40:58

+0

你說的對,我的錯 – EaterOfCode 2013-04-08 12:42:14

3

填寫您的組合框上裝載從數據庫項目,然後 一套組合框屬性:

AutoCompleteMode:建議追加

AutoCompleteSource:listItems中

製作確保將DropDown樣式設置爲DropDown,以便用戶可以輸入。 只是做一個驗證,如果在組合框中輸入的文本不會在名單上接受之前就已存在。

希望它有幫助。

+0

哇謝謝!我不知道這一點。 – AKS 2014-06-14 18:16:30