Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    44

    [vb 2010] - Problema modifica stringa

    Ciao

    il problema è il seguente: ho una stringa che deve essere utilizzata per una query SQL su un database utilizzando l'operazione LIKE.
    Il problema nasce quando all'interno della stringa compare il carattere "parentesi quadra": il programma segnala una eccezione perché le parentesi quadre sono caratteri speciali.
    Quindi per poter utilizzare i caratteri speciali è necessario far precedere e seguire ogni carattere speciale con una parentesi quadra.
    Ad esempio, la stringa di ricerca:
    stringa = "[5]" deve diventare:
    stringa = "[[]5[]]"
    Come fare per eseguire queste operazioni sulle stringhe quando compaiono i caratteri speciali?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    44
    AGGIUNGO che il contenuto della stringa viene inserito tramite TextBox dall'utente.
    Quindi ci deve essere una operazione che, partendo dalla stringa inserita dall'utente, inserisca le parentesi quadre prima e dopo i caratteri speciali.
    Grazie ancora

  3. #3
    si fa semplicemente con una replace

    .replace("[","[[]")


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    44
    Beh, non ci avevo pensato....:-))
    Grazie!

  5. #5
    Ciao, da come hai scritto suppongo che non usi i parametri...giusto?
    Eventualmente crea una query parametrica e passa la stringa al parametro cosi come viene scritta dall'utente, "dovrebbe" funzionare...
    Jupynet

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    44
    però nasce il problema delle sostituzioni multiple.
    Io devo effettuare le seguenti sostituzioni:
    txtRicerca.Text = txtRicerca.Text.Replace("[", "[[]")
    txtRicerca.Text = txtRicerca.Text.Replace("]", "[]]")
    txtRicerca.Text = txtRicerca.Text.Replace("*", "[*]")
    txtRicerca.Text = txtRicerca.Text.Replace("%", "[%]")

    ma come faccio ad evitare che vengano sostituite anche le parentesi aggiunte??

  7. #7
    usa due caratteri "strani", del tipo "§" per "[" e "ç" per "]" , o comunque caratteri che l'utente non digita; poi alla fine sistemi il tutto.

    quindi, ad esempio

    txtRicerca.Text = txtRicerca.Text.Replace("[", "§[ç")
    txtRicerca.Text = txtRicerca.Text.Replace("]", "§]ç")
    txtRicerca.Text = txtRicerca.Text.Replace("*", "§*ç")
    txtRicerca.Text = txtRicerca.Text.Replace("%", "§%ç")
    txtRicerca.Text = txtRicerca.Text.Replace("§", "[")
    txtRicerca.Text = txtRicerca.Text.Replace("ç", "]")

    fa' un po' di prove

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da MakB76
    però nasce il problema delle sostituzioni multiple.
    Io devo effettuare le seguenti sostituzioni:
    txtRicerca.Text = txtRicerca.Text.Replace("[", "[[]")
    txtRicerca.Text = txtRicerca.Text.Replace("]", "[]]")
    txtRicerca.Text = txtRicerca.Text.Replace("*", "[*]")
    txtRicerca.Text = txtRicerca.Text.Replace("%", "[%]")

    ma come faccio ad evitare che vengano sostituite anche le parentesi aggiunte??
    Stai perdendo tempo, inutilmente.
    Come ha già suggerito jupynet devi usare i Command con i parametri.
    Fine di tutti problemi.

    Vedi anche l'esempio nella mia firma.

  9. #9
    Originariamente inviato da gibra
    Stai perdendo tempo, inutilmente.
    Come ha già suggerito jupynet devi usare i Command con i parametri.
    Fine di tutti problemi.

    Vedi anche l'esempio nella mia firma.
    il discorso funziona anche per la LIKE (è questo l'argomento del thread)? se cerco ... LIKE '%ardi'... mi riporterà leopardi e ghepardi o proprio %ardi? e se si volessero cercare tutte le stringhe che contengono il carattere '%' come si dovrebbe fare?

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    44
    @gibra
    I parametri li utilizzo già, ma questo non impedisce la nascita dell'eccezione quando si digita nella barra di ricerca ad esempio la stringa "[E]"

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.