+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Filtri incrociati e parametri

  1. #1
    Arsenio non è in linea Novello
    Post
    3

    Filtri incrociati e parametri

    Salve a tutti, sono un neofita della programmazione e mi sto cimentando nell'uso di visual sudio 2008.

    Nel programmare un filtro per i dati in una tabella del dataset ho usato una query del relativo tableadapter

    es.

    Table Adapter.Filtro(DataSet.Tabella, Data, Intestazione, Importo)

    Laddove utilizzo tutti i parametri per filtrare i miei dati, non ho problemi, ottengo le righe così come da filtro, laddove invece intendo filtrare i dati solo circa uno o due parametri, non riesco a settare il terzo parametro in modo che il database mi restituisca tutte le righe per quel valore.

    es.

    data: 10/03/09
    intestazione: antonio
    importo: 100

    in questo modo il tableadapter mi trova la riga, ma se voglio filtrare in questo modo:

    data: 10/03/09
    intestazione: antonio

    non riesco a comunicare al db che per il parametro "importo" deve includere tutti i valori.

    Come posso risolvere il mio problema? Devo riprogrammare ogni volta il commandtext escludendo il parametro che all'occorrenza non mi serve, oppure c'è un valore da passare al parametro che indica al database di considerare tutti i valori (es. "*", oppure ".*"...)?

    Grazie anticipatamente,
    Antonio.

  2. #2
    Luogo
    Padova
    Post
    4,379
    Blogs
    36
    Se ho capito bene tu ricostruisci ogni volta un dataadapter con un command text diverso a seconda dei dati "mirati che ti interessano".
    Per piccole applicazioni credo sia più utile generare un dataset con tutti i dati e successivamente agire sulla proprietà "filter" del bindingsource per filtrare quanto da visualizzare.
    ----------------------------------------------------------
    Se avete delle domande fatele prima al forum
    Il mio blog su Masterdrive.it
    Il mio blog su Visual-Basic.it

  3. #3
    Arsenio non è in linea Novello
    Post
    3
    Dunque, cercherò di essere più chiaro. Ho costruito un filtro su una tableAdapter, con cinque parametri e, di seguito:

    TableAdapter.Filtro(DataSet.Tabella, data, intestazione, tipo, importo, stato)

    Ho poi costruito un form "Filtro", tramite il quale l'utente seleziona, da combobox, una serie di parametri in base al quale effettuare ricerca e filtro su righe della tabella in questione.

    Finchè l'utente seleziona tutti e cinque i parametri, la query funziona e il db mi restituisce le righe richieste, se invece l'utente seleziona solo alcuni dei cinque parametri, lasciando gli altri vuoti (volendo così non filtrare per quei campi), il db non mi restituisce nessuna riga, perchè riconosce i parametri che non sono stati specificati come "vuoti" e non trova nessuna riga che abbia, per esempio, il campo "importo" vuoto.

    es.

    dim importo as string = cbxImporto.text
    dim data as string= pbData.text
    dim intestazione as string = txtIntestazione.text
    dim tipo as string= cbxTipo.text
    dim stato as string = cbxStato.text

    TableAdapter.FIltro(DataSet.Tabella, data, intestazione, importo, stato, tipo)

    laddove i campi "data, importo, intestazione, tipo, stato" hanno un valore diverso da "", il db applica il filtro e mi tira fuori le righe, altrimenti, se l'utente ha lasciato vuoto il campo importo, per esempio, il db non mi tira fuori nessuna riga, perchè effettivamente non c'è nessuna riga che abbia il campo "importo" vuoto.

    Ora, la mia domanda è, come faccio ad indicare al db che se un parametro è ="", deve restituirmi tutti i valori per quel campo, ossia come faccio ad annullare un parametro di ricerca?

    Saluti, Antonio

  4. #4
    Arsenio non è in linea Novello
    Post
    3
    Allora, dev'esserci un modo per annullare un parametro... nessuna sa aiutarmi?

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi