Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.NET] - Parametri comando query e funzione LIKE

    Ciao a tutti!
    Vi pongo un quesito forse semplice ma che proprio non riesco a risolvere!

    Io di norma con Vb.Net uso i parametri quando devo eseguire una query Mysql.
    Una cosa di questo tipo:

    codice:
    dim mioCmd as new mysqlCommand("SELECT * FROM miaTab WHERE mioCampo=@mioParametro",miaConnessione)
    mioCmd .Parameters.Add("@mioParametro", mysqldbtype.varchar).Value = mioValore
    Sin qui tutto ok!

    Oggi però ho necessità di usare la funzione LIKE. Come saprete nella funzione LIKE c'è un'utilissima proprietà che si attiva col simbolo percentuale che consente di selezionare i record se la parola è contenuta nel campo (a sinistra o a destra a seconda di come si usa il simbolo %, o a prescindere come nell'esempio seguente)

    Es:

    codice:
    "SELECT * FROM clienti WHERE ragioneSocialeCliente LIKE '%Veronica%'"
    selezionerà tutti i clienti la cui ragione sociale contenga la parola Veronica.

    Ho provato a inserire il simbolo % prima di valore in questo modo:

    codice:
    mioCmd .Parameters.Add("@mioParametro", mysqldbtype.varchar).Value = "%" & mioValore & "%"
    Ma non funziona! Qualcuno di voi ha mai usato la funzione LIKE usando i parametri di comando?

    Grazie a tutti amici!

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    30
    Non so con MySQL ma con Access ad esempio mancherebbero gli apici visto che si tratta di un testo. Esempio (gli spazi sono voluti per visualizzare e distinguere apice e virgolette)

    WHERE ragioneSocialeCliente LIKE + " ' % " + " VERONICA " + " % ' "

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Sabotto
    Non so con MySQL ma con Access ad esempio mancherebbero gli apici visto che si tratta di un testo. Esempio (gli spazi sono voluti per visualizzare e distinguere apice e virgolette)

    WHERE ragioneSocialeCliente LIKE + " ' % " + " VERONICA " + " % ' "
    Hai proposto una soluzione antiquata e oltretutto sbagliata.
    Non si scrive più una query in quel modo.

    Stiamo parlando di un Command (mysqlCommand) che è tutt'altra cosa.

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Mi son resa conto che avevo il "LIKE" attaccato al parametro nella costruzione della stringa xD

    in realtà facendo così:

    codice:
    mioCmd .Parameters.Add("@mioParametro", mysqldbtype.varchar).Value = "%" & mioValore & "%"
    funge!

    Alla fine quindi ho risolto così:
    codice:
    dim operatoreLike as String=""
    if qui la condizione che decreta se la SELECT usa il like o = then
    functLikeYes="%"
    end if
    mioCmd .Parameters.Add("@mioParametro", mysqldbtype.varchar).Value = operatoreLike  & mioValore & operatoreLike
    Rende il tutto un po meno automatizzato ma alla fine mi son salvata così

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    30
    Originariamente inviato da gibra
    Hai proposto una soluzione antiquata e oltretutto sbagliata.
    Non si scrive più una query in quel modo.

    Stiamo parlando di un Command (mysqlCommand) che è tutt'altra cosa.
    E' vero hai ragione, avevo dimenticato che stava usando il command.

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.