Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    [c#] parametro con sql like

    ciao.. ho una query.. una semplice query che fà uso di un like:
    codice:
    select * fom ciccio where abc like '%?%'
    ovviamente non mi funziona.. dico ovviamente perchè già una volta sono incappato in questo problema che ricordo di aver risolto.. ma non ricordo in quale programma e soprattutto come..
    il parametro lo creo normalmente:
    codice:
    OleDbParameter par = new OleDbParameter("@mioparametro",OleDbType.VarChar,20);
    par.Value = textbox1.Text;
    command.Parameters.Add(par);
    ho provato varie forme.. ad esempio:
    codice:
    select * fom ciccio where abc like ?
    ...
    OleDbParameter par = new OleDbParameter("@mioparametro",OleDbType.VarChar,20);
    par.Value = "'%"+textbox1.Text+"%'";
    command.Parameters.Add(par);
    oppure anche
    codice:
    select * fom ciccio where abc like '?'
    ...
    OleDbParameter par = new OleDbParameter("@mioparametro",OleDbType.VarChar,20);
    par.Value = "%"+textbox1.Text+"%";
    command.Parameters.Add(par);
    ed anche..
    codice:
    select * fom ciccio where abc like  '%' + ? + '%'
    ...
    OleDbParameter par = new OleDbParameter("@mioparametro",OleDbType.VarChar,20);
    par.Value = textbox1.Text;
    command.Parameters.Add(par);
    ma niente..
    avete qualche idea da suggerirmi?
    con l'ultima prova mi và addirittura in errore perchè non riconosce la funzione dell'operatore addizzionale

  2. #2
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ah dimenticavo.. il db è db2 su as400..
    l'ultima prova sembra funzionare corrttamente su access.. anzi funziona sicuramente.. l'ho provata.. ma su db2 non mi riconosce il +

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Sei sicuro che su Access funzioni correttamente?

    Io ho provato, ma non ho avuto molto successo: la query non restituisce alcun dato significativo, anche ricontrollando più volte la query.

    Tuttavia, in quel caso, trattandosi di un una condizione particolare quale è l'uso di LIKE, farei a meno dei parametri in quanto non indispensabili (non c'è un problema di formato, tutt'al più basta realmente controllare il parametro e raddoppiare gli apici nella stringa in input da usare nella condizione).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da alka
    Sei sicuro che su Access funzioni correttamente?

    Io ho provato, ma non ho avuto molto successo: la query non restituisce alcun dato significativo, anche ricontrollando più volte la query.

    Tuttavia, in quel caso, trattandosi di un una condizione particolare quale è l'uso di LIKE, farei a meno dei parametri in quanto non indispensabili (non c'è un problema di formato, tutt'al più basta realmente controllare il parametro e raddoppiare gli apici nella stringa in input da usare nella condizione).

    Ciao!
    con access funziona sicuro sicuro.. e cmq sono riuscito anche a farlo funzionare con db2 semplicemente aggiungendo "%" nel parametro..
    guarda ci sono pensieri discordanti.. ho un amico, un bravo programmatore, che se gli faccio vedere del codice, fosse anche una semplice select senza parametri, và su tutte le furie.. cmq sono daccordo con lui.. l'utilizzo dei parametri, non fosse altro per evitare i controlli per evitare l'sql injection è sempre una buona abitudine..

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da dops
    con access funziona sicuro sicuro.. e cmq sono riuscito anche a farlo funzionare con db2 semplicemente aggiungendo "%" nel parametro..
    Forse allora avevi dimenticato qualcosa nel tuo codice e io pure.

    Originariamente inviato da dops
    guarda ci sono pensieri discordanti.. ho un amico, un bravo programmatore, che se gli faccio vedere del codice, fosse anche una semplice select senza parametri, và su tutte le furie..
    Non ci sono pensieri discordanti: penso che abbia pienamente ragione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.