Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211

    [asp.net c#] errore sintassi query UPDATE

    ciao,

    ho un form che contiene i dati di un ssingolo utente in textbox, il problema è che se eseguo l'aggiornamento dei dati nel db la stringa sql mi da errore:

    codice:
     ExecuteSqlStatement(Cnnstr, "UPDATE utente SET cognome='" + txtcognome.Text + "' nome='" + txtnome + "'  password='" + txtpsw.Text + "' email='" + txtemail.Text + "' WHERE username ='" + txtusername.Text + "'");
    se provo invece ad esegruire solo questo pezzo riesce e mi aggiorna il campo, quindi penso dipenda dalla sintassi tra un campo e l'altro...

    codice:
    ExecuteSqlStatement(Cnnstr, "UPDATE utente SET cognome='" + txtcognome.Text + "'  WHERE username ='" + txtusername.Text + "'");
    ho provato anke a mettere al posto della virgola "and" ma niente da fare... qlk può aiutarmi a capire dove è lerrore di sintassi tra i campi?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    14
    Semplice manca solamente una virgola tra i vari campi da aggiornare...

    Cmq per rendere tutto più leggibile puoi fare così:

    string sql = String.Format("UPDATE utente SET cognome='{0}', nome='{1}', password='{2}', email='{3}' WHERE username ='{4}'", txtcognome.Text, txtnome.Text, txtpsw.Text, txtemail.Text, txtusername.Text);

    ExecuteSqlStatement(Cnnstr, sql);

    Ciao!

  3. #3
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    ciao!
    ho provato a inserire la stringa sql come mi hai consigliato, ma da comunque errore... e non aggiorna i campi... ho provato anke a inserire la virgola tra i campi nella stringa che avevo presentato, e a mettere l'operatore "and"... ma niente da fare... qlk altro consiglio?

    grazie per la pronta risposta

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    C'è un solo consiglio che danno tutti: usa i parametri.



    ps. :master: oltretutto, che database usi?

    per esempio, se usi Access, i campi li devi racchiudere con le parentesi quadre

    select [campo] from tabella.
    Pietro

  5. #5
    Utente di HTML.it L'avatar di lila89
    Registrato dal
    Oct 2007
    Messaggi
    211
    ciao scusami,
    hai ragione non ho specificato.. uso SQL Server 2005...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    14
    E allora come dice pietro09 usa i parametri

    Puoi fare ad esempio così

    SqlCommand cmd = new SqlCommand( NomeConnessione, "UPDATE utente SET cognome=@Cognome, nome=@Nome, password=@Password, email=@Email WHERE username =@Username");

    cmd.Parameters.AddWithValue("@Cognome", Cognome.Text);
    ...
    INSERISCI TUTTI I PARAMETRI
    ...

    cmd.ExecuteNonQuery();


    Ciao!

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.