2013-04-08 11 views
5

Sto creando un Windows Form in cui dispongo di una casella combinata, nella quale sono stati caricati alcuni "numeri di fattura", dal server SQL 2010. Desidero visualizzare i numeri di fattura come tipi di utente nella casella combinata. Ad esempio se l'utente digita "100", i numeri di fattura che iniziano con "100" devono essere visualizzati nel menu a discesa.Ricerca casella combinata come Ricerca Google

Please Help, Grazie in anticipo ...

+0

Eventuali duplicati: controllo questo http://stackoverflow.com/questions/11780558/c-sharp-winforms-combobox-dynamic-autocomplete –

risposta

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

Ho provato questo codice e ha funzionato ... Grazie per tutti coloro che hanno provato a rispondere alla mia domanda ... – Sam

1

Quello che dovete fare qui è:

  • ottenere un evento ogni volta che l'utente digita un carattere in alla casella di testo.
  • hanno una funzione che gira su questo evento per leggere il contenuto della scatola ('100' nel tuo esempio) e fuoco una query fuori al database, ad esempio:

    SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'

  • Visualizzare la corrispondenza dei risultati in una casella combinata da cui l'utente può selezionare.
+0

non è in MSSQL '*' invece di ''%? – EaterOfCode

+1

Ho usato '%' con successo in SQL Server 2010 almeno – snappieT

+0

Hai ragione, colpa mia – EaterOfCode

3

Riempi la tua casella combinata con gli oggetti dal database sul caricamento poi impostare le proprietà casella combinata:

AutoCompleteMode: Suggerisci Append

AutoCompleteSource: ListItems

Marchio sicuro di impostare lo stile DropDown su DropDown in modo che l'utente possa digitare. Basta fare una convalida se il testo inserito nella casella combinata esiste nell'elenco prima di accettarlo.

spero che sia d'aiuto.

+0

wow, grazie !!! Non ne sono a conoscenza. – AKS