Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1

    [VisualSudio 2008] Filtro dinamico datagridviewer

    Ciao ragazzi, buonasera. Una dritta

    Ho un datagridviewer, sapete illustrarmi che metodo utilizzare per filtrare i capi della griglia durante la digitazione all'interno di una textbox?

    Per essere chiaro. Vorrei che al momento che l'utente digita qualcosa, la datagrid, filtra i record ell'interno in base a quello che viene digitato, ad ogni pressione dei tasti.

    Grazie mille ragazzi....

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    77
    Select * From tabella Where Cliente Like '%' + ? + '%'

    questo dovrebbe andare provalo e fammi sapere

  3. #3
    Ci ho provato, ma quella stringa è la query da creare? O il comando?

    Grazie Mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    77
    il comando e sempre fillxxx

  5. #5
    ok, scusami ma il bimbo mi ha tenuto impegnato per un po.
    se non ho capito male, creo un fill con quella richiesta.
    poi uso lo stesso metodo che ho usato per filtrare gli interventi? (Come mi hai spiegato la vosta scorsa nel precedente post) mettendola all'evento textbox change

  6. #6
    Allora. Se ti serve un filtro allora la datagrid non è l'oggetto che fa per te. Ci sono 2 modi (molto simili)

    1) usare l'oggetto DataView
    2) usare l'oggetto BindingSource (molto versatile ma ti basta anche il DataView)


    Vediamo con il DataView.

    1) al posto di riempire direttamente la DataGridView, riempi il DataView (il procedimento dovrebbe essere uguale)
    2) quando hai i dati dentro il dataview usi questo codice:

    [Tua DataGridView].DataSource=[Tuo DataView];

    Sotto l'evento TextChanged della tua TextBox:

    ((DataView)[Tua DataGridView]).Filter= "[Nome Colonna] like '*"+[Valore]+"'*";

    così fai una like a doppia entrata. se ti serve la corrispondenza levi gli asterischi, se ti serve una like singola levi l'ultimo asterisco.

    Considerazioni: la stringa di filtro è molto simile alle query sql. per cui quando filtri devi stare attento ad apici e altri caratteri come il %. la cosa a cui devi stare più attento sono gli apici. risolvi il problema così:

    ((DataView)[Tua DataGridView]).Filter= "[Nome Colonna] like '*"+[Valore].ToString().Replace("'"',"''")+"'*";

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Però se i dati sono tanti,io sceglierei di fare la query direttamente sul DB e non sul dataview.

  8. #8
    mm anche ammesso che i dati li tiri giù dal DB ad ogni modo il filtro su RAM è più veloce che ricaricare i dati da DB quindi da disco... considera questo: gestione degli alberghi d'italia... Saranno più di 10000. Fai una query che li tira su tutti in una DataView. Ci mette quello che ci deve mettere... fai 5-10 secondi. Se per ogni lettera devi tirare su di nuovo tutti i dati da DB... il programma è lentissimo. invece con un filtro in ram non lo sente neanche

  9. #9
    Ragazzi, grazie, stò provando a vedere se posso applicare il metodo che mi avete descritto.
    io per ora ho fatto così:

    Dim CliDV As New DataView(Me.ClientiDataSet.Clienti)
    DataGridView1.DataSource = CliDV

    solo che poi qundo carico il progetto, non riesco a vedere i dati annessi

    fino ad ora usavo una query di entrara per recuperare i dati

    Scusate se sono un poco "Duro" XD

  10. #10
    Aspetta facci capire la problematica... Allora, dal metodo sotto descritto sembra che crei un DataView da una DataTable, e la DataTable la prendi dal DataSet. Mi fa supporre che il DataSet lo riempi con una query quindi da database. giusto?

    Non ho capito questa parte:
    "solo che poi quando carico il progetto, non riesco a vedere i dati annessi"

    "carichi" in che senso? quando avvii il debug?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.