+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [VB2015 EE] Accenti in MySql

  1. #1
    L'avatar di vbrookie
    vbrookie non è in linea Scolaretto
    Luogo
    Treviso
    Post
    169

    [VB2015 EE] Accenti in MySql

    Ciao a tutti,
    piccolo grande problema: se provo ad inserire su una tabella mysql un variabile che contiene un accento il programma mi da un errore di sintassi.
    Utilizzo questo codice:
    codice:
            Connessione.Open()
            Dim Comm As New MySqlCommand : Dim Prova As String = TextBox2.Text
            Dim Quer As String = ("UPDATE tab_clienti SET Indirizzo = '" & Prova & "' WHERE idTAB_CLIENTI ='9'")
            Comm.CommandText = Quer
            Comm.Connection = connessione
            Dim Readers As MySqlDataReader = Comm.ExecuteReader
    la variabile Prova contiene il dato "Via dell'asilo" e nel dato si trova l'accento. Tutto funziona bene se invece il dato non contiene accenti o vocaboli accentati.
    E' risolvibile il problema ?
    Grazie a tutti per l'aiuto.
    Ciao

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,972
    Blogs
    5
    Questo (e non solo questo) problema si evita usando i Parametri e non una stringa costruita in quel modo.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    L'avatar di vbrookie
    vbrookie non è in linea Scolaretto
    Luogo
    Treviso
    Post
    169
    Grazie della dritta Antonio. Sto mettendo le mani su Mysql da pochissimo, quindi abbi pietà...
    Hai qualche suggerimento ?
    Grazie
    Ciao

  4. #4
    L'avatar di vbrookie
    vbrookie non è in linea Scolaretto
    Luogo
    Treviso
    Post
    169
    Il problema sembra risolto lavorando coi paramentri come suggerito da Antonio.
    Posto il codice per chi fosse interessato:
    codice:
     connessione.Open()
            Dim Comm As New MySqlCommand
            Dim Quer As String = ("UPDATE tab_clienti SET Indirizzo = @Indirizzo, Localita=@Localita WHERE idTAB_CLIENTI ='9'")
            Comm.Parameters.AddWithValue("@Indirizzo", TextBox2.Text)
            Comm.Parameters.AddWithValue("@Localita", TextBox4.Text)
            Comm.CommandText = Quer
            Comm.Connection = connessione
            Dim Readers As MySqlDataReader = Comm.ExecuteReader
            connessione.Close()
            MsgBox("Aggiornamento Eseguito")
    Grazie
    Ciao

  5. #5
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    15,972
    Blogs
    5
    Quote Originariamente inviato da vbrookie Visualizza il messaggio
    Grazie della dritta Antonio. Sto mettendo le mani su Mysql da pochissimo, quindi abbi pietà...
    Non è una questione legata a MySql ma è generica, per qualsiasi DBMS (SQL Server, Access, Oracle ...).

    Come vedi la soluzione era semplice e bastava solo seguire il suggerimento già dato, senza bisogno di averne altri.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  6. #6
    L'avatar di vbrookie
    vbrookie non è in linea Scolaretto
    Luogo
    Treviso
    Post
    169
    Hai ragione ma, come anticipato, sono un neofita dei DB.
    Mi sfugge però una cosa: nel mio caso il parametro @Indirizzo contiene la stringa inserita nel textbox2. Quindi @Indirizzo è textbox2.text sembrano uguali. Perchè allora funziona tutto utilizzando il parametro @Indirizzo e non funziona se provo ad utilizzare textbox2.text ?
    Grazie
    Ciao

  7. #7
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    191
    Quote Originariamente inviato da vbrookie Visualizza il messaggio
    Hai ragione ma, come anticipato, sono un neofita dei DB.
    Mi sfugge però una cosa: nel mio caso il parametro @Indirizzo contiene la stringa inserita nel textbox2. Quindi @Indirizzo è textbox2.text sembrano uguali. Perchè allora funziona tutto utilizzando il parametro @Indirizzo e non funziona se provo ad utilizzare textbox2.text ?
    Grazie
    Ciao
    Perchè sono 2 cose completamente diverse. Qui trovi la spiegazione precisa di come funzionano in generale i DbCommand.

  8. #8
    L'avatar di vbrookie
    vbrookie non è in linea Scolaretto
    Luogo
    Treviso
    Post
    169
    Ciao Sgrubak e grazie per l'interessamento...solo che il link non funziona.
    Ciao

  9. #9
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    191
    https://docs.microsoft.com/it-it/dot...ter-data-types

    Te lo lascio per esteso così non faccio altri casini.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi