Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    25

    realizzazione di select additiva

    linguaggio utilizzato: vb.net
    motore database :MYSQL

    Avrei la seguente esigenza.

    Ho un form di ricerca nel quale si possono impostare vari campi tra cui nome, cognome, data di nascita, tipo di lavoro svolto, comune di residenza, ecc ecc.

    Vorrei realizzare una select nel databse includendo questi campi, lo posso fare con una select con una WHERE del tipo:
    WHERE nome='nomecercato' and Cognome='cognomecercato' ecc.

    il problema e che i campi vengono riempiti a runtime dinamicamente quindi è probabile che in una query la ricerca sia solo per nome in un'altra per nome e lavoro in un'altra per nome lavoro e citta di nascita.

    Vorrei capire se è possibile in sql strutturare la query in modo dinamico e additivo o se devo ricorrere a meccanismi via codice.

  2. #2

    Re: realizzazione di select additiva

    Originariamente inviato da incapato
    Vorrei capire se è possibile in sql strutturare la query in modo dinamico e additivo o se devo ricorrere a meccanismi via codice.
    non capisco la differenza...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    25
    mi spiego meglio anche se nel frattempo ho già pensto ad una possibile soluzione:
    ho queste tre texbox
    Nome
    Cognome
    Cittanascita.

    ora se faccio 3 ricerche avro:

    cercho tutti quelli che si chiamano mario

    SELECT * FROM tabella Where nome='nome.gettext'

    cerco quelli che si chiamano mario rossi

    SELECT * FROM tabella Where nome='nome.gettext' and cognome='cognome.gettext'

    quelli che si chiamano mario rossi nati a milano

    SELECT * FROM tabella Where nome='nome.gettext' and cognome='cognome.gettext' and datanascita='datanascita.gettext'


    immagina ora che io itilizzi l'ultima delle query e che l'utente inserisca solo 2 dei 3 valori ad esempio nome, cognome lasciando vuoto il campo data, la query fornisce 0 record perchè non esistono utenti che hanno il campo data vuoto.

    la mia domanda è la seguente esiste un modo via SQL per gestire la cosa, o la cosa deve essere gestita via codice(avevo già pensato ad una soluzione ma ho 20 textbox quindi è la strada più lunga).

  4. #4
    se le query le costruisci così, allora fai già da codice, quindi...


    questa la teoria



    SQL="SELECT elenco_campi FROM tabella WHERE 1=1 "

    poi analizzi il campo di input: se NON è vuoto lo aggiungi alla query

    IF campoInput<>"" THEN SQL=SQL+" AND colonna="+campoInput

    that easy!

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.