Visualizzazione dei risultati da 1 a 10 su 10

Discussione: checkboxlist e query

  1. #1

    checkboxlist e query

    Recupero i valori selezionati da un CheckBoxList in questo modo:

    Sono riuscito in questo modo:

    foreach (ListItem elementi in StatoIns.Items)

    {

    if (elementi.Selected)

    {

    stato += "(IDSt=" + elementi.Value + ") AND ";

    }

    }



    ora vorrei creare la parte di query per effettuare la ricerca.... sulla base degli elementi selezionati

    come ho fatto io non va bene in quanto se ho selezionato un solo elemento della lista mi trovo l'AND e invece non dovrei visualizzarlo... (dato che ho scelto un solo valore)

    Come posso creare correttamente la query?


    Grazie per l'aiuto
    Iceberg

  2. #2
    Basta un trucchetto:

    codice:
    stato = "select * from tabella where";
    foreach (ListItem elementi in StatoIns.Items) { 
    if (elementi.Selected) { 
    stato += " AND (IDSt=" + elementi.Value + ")"; 
    } 
    } 
    stato = stato.Replace("WHERE AND", "WHERE");
    Dovrebbe funzicare

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Un altro trucchetto simpatico è quello di inizializzare la CondizioneWhere con 1=1, in tal modo si eliminano sostituzioni e controlli if (la clausola and è sempre corretta). Inoltre, siccome c'è sempre la condizione where, posso pure aggiungere sempre la condizione sort...
    Pietro

  4. #4
    Originariamente inviato da pietro09
    Un altro trucchetto simpatico è quello di inizializzare la CondizioneWhere con 1=1, in tal modo si eliminano sostituzioni e controlli if (la clausola and è sempre corretta). Inoltre, siccome c'è sempre la condizione where, posso pure aggiungere sempre la condizione sort...
    Giustamont

  5. #5
    grazie 1000

    sto cercando di utilizzare la tua soluzione ma io creo la parte di query in questo modo:

    StringBuilder sb = new StringBuilder();

    sb.Append("(data LIKE '*");
    sb.Append(@Scadenza);
    sb.Append("*') AND (modello LIKE '");
    sb.Append(@Modello);
    sb.Append("*') AND (mat LIKE '*");
    sb.Append(@ID);
    sb.Append("*') AND (com LIKE '");
    sb.Append(@Com);
    sb.Append("*')AND (codice LIKE '");
    sb.Append(@Tipo);
    sb.Append("*')");


    che poi passo come filtro al DataView

    quindi dovrei aggiungere la parte del CheckBoxList a questa stringa ... ma come????
    Iceberg

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Devi dividere il problema in due parti, ossia, farti due funzioni:
    la prima del tipo
    private function sql$()
    return "select * from tabella where " & ConizioneWhere()


    e la seconda, appunto, CondizioneWhere che ti costruisce il filtro

    E' in basic, ma non avrai difficoltà ad implementarlo in c##
    Pietro

  7. #7
    La Select l'ho già in un'altro metodo e funziona tutto correttamente.

    Nel metodo che esegue il filtro (dopo il click) del mouse, ho messo:

    - StringBuilder per aggiungere il filtro in base ai valori inseriti nei campi

    ora dovrei

    - Recuperare i valori "flaggati" nel CheckBoxList (fatto!)
    - Aggiungere la stringa alla precedente

    il mio problema è aggiungere la parte di query che recupera i valori dal CheckBoxList


    Grazie ancora
    Iceberg

  8. #8
    Ok allora adotta il metodo consigliato da pietro09:
    codice:
    ...
    stato = " AND 1=1";
    foreach (ListItem elementi in StatoIns.Items) { 
    if (elementi.Selected) { 
    stato += " AND (IDSt=" + elementi.Value + ")"; 
    } 
    }
    sb.Append(stato);
    ...
    Prova e facce sapé

    (a questo punto però stato è superfluo se lo usi solo all'interno di quel ciclo.. puoi direttamente "appendarlo" alla variabile sb)

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    scusate, non c'entra niente, ma giusto per dare ad aspx quello che è di aspx, sapete quanto è potente implementare questo filtro come UserControl? :gren:
    Pietro

  10. #10
    Funziaaaa

    Grazie a tutti per l'aiuto
    Iceberg

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.