Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    40

    Errore di sintassi nell'istruzione UPDATE.???

    Salve a tutti


    Ho un controllo datagrid e nell'evento UpdateCommand il seguente codice:
    codice:
      Dim username As String = e.Item.Cells(1).Text
            Dim password As String = CType(e.Item.Cells(2).Controls(0), TextBox).Text
            Dim livello As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
            Dim sqlquery As String
    
            Dim conn2 As OleDbConnection = genericFunction.ConnettiDb
            'query di aggiornamento
            sqlquery = String.Format("update members set password='{0}', livello={1} where username='{2}'", password, livello, username)
            Dim excmd As New OleDbCommand(sqlquery, conn2)
            excmd.ExecuteNonQuery()
            Response.Write(sqlquery)
            conn2.Close()
    
            DGUtenti.EditItemIndex = -1
            DGUtenti.DataSource = dr2
            DGUtenti.DataBind()
    Quando lo mando in esecuzione mi ritorna un errore:
    System.Data.OleDb.OleDbException: Errore di sintassi nell'istruzione UPDATE.

    eppure la query che dovrebbe processare è semplicissima
    codice:
    update members set password='nuovapass', livello=0 where username='admin'
    Da che dipende?

    Avrei anche un altra domanda. Come si vede dal codice ho dovuto mettere aprire un altra connessione per effettuare la query... E' possibile evitare l'apertura e chiusura di molteplici connessioni e quindi utilizzare un unica connessione aperta al page_load e chiusa al page_unload?

    grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Se utilizzi Access, tutti i campi e i nomi di tabella vanno chiusi in parentesi quadre (altrimenti si diventa scemi a capire l'errore )

    Letto non mi ricordo dove non so quanto tempo fa:
    APRIRE IL PIU' TARDI POSSIBILE LA CONNESSIONE E CHIUDERLA IL PIU' PRESTO.

    Pietro

  3. #3
    "password" è una parola riservata, mettila tra parentesi quadre come dice Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    40
    L'errore è che voleva proprio le parentesi :master:
    update members set [password]='nuovapass', [livello]=0 where [username]='admin'

    messa cosi' gli è piaciuta...

    Letto non mi ricordo dove non so quanto tempo fa:
    APRIRE IL PIU' TARDI POSSIBILE LA CONNESSIONE E CHIUDERLA IL PIU' PRESTO.
    Sono daccordo con te e con chi ha detto ciò, ma cosi è necessario aprire una nuova connessione praticamente per ogni query...

    :master:

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    40
    Originariamente inviato da DeBe99
    "password" è una parola riservata, mettila tra parentesi quadre come dice Pietro
    Ah ecco, cosi' incomincia ad avere una certa logica...

  6. #6
    se devi eseguire più query consecutivamente ovviamente e meglio farlo con una connessione sola

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da under99
    Sono daccordo con te e con chi ha detto ciò, ma cosi è necessario aprire una nuova connessione praticamente per ogni query...

    :master:
    Sì? E allora?
    Dunque, devi utilizzare la stessa connessione solo nelle transazioni.
    Negli altri casi, fregatene.

    (Qualche tempo fa, in Access, aprivo la connessione all'inizio, e la chiudevo alla fine, perchè credevo che fosse più veloce e che si risparmiassere risorse. Poi ho letto quello che ho scritto in un articolo della Microsoft, ed ho capito che sbagliavo)

    Pietro

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti faccio un esempio. Ho una routine che mi permette di riempire dropdown da database. In pratica chiamo la routine passandole dei parametri (stringa di connessione, nome tabella,....)
    Questa routine, apre la connessione, riempie il dropdown, chiude la connessione e solleva un errore in caso di errore.

    In una pagina di acquisizione dati la posso utilizzare più e più volte per riempirmi svariati dropdown.
    E tu credi che di fronte ad una estrema facilità di uso e manutenzione, mi interessi molto che la connessione si apra 10 volte in una pagina? :maLOL:

    Ciao
    Pietro

  9. #9
    Originariamente inviato da pietro09
    Ti faccio un esempio. Ho una routine che mi permette di riempire dropdown da database. In pratica chiamo la routine passandole dei parametri (stringa di connessione, nome tabella,....)
    Questa routine, apre la connessione, riempie il dropdown, chiude la connessione e solleva un errore in caso di errore.

    In una pagina di acquisizione dati la posso utilizzare più e più volte per riempirmi svariati dropdown.
    E tu credi che di fronte ad una estrema facilità di uso e manutenzione, mi interessi molto che la connessione si apra 10 volte in una pagina? :maLOL:

    Ciao
    se la richiami 10 volte di seguito è anche un grosso dispendio di tempo (l'apertura della connsessione e uno dei processi pi lenti). In questo caso in avrei fatto (cioè ho fatto)un'altra funzione a cui passare direttamente una conessione aperta

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da DeBe99
    se la richiami 10 volte di seguito è anche un grosso dispendio di tempo (l'apertura della connsessione e uno dei processi pi lenti). In questo caso in avrei fatto (cioè ho fatto)un'altra funzione a cui passare direttamente una conessione aperta
    Beh! Tu hai fatto bene, e la cosa mi fa comunque riflettere.

    Resta comunque che occorrerebbero dei dati di confronto per fare una discussione seria. E per vedere se effettivamente si ha un degrado di prestazioni tale da imporre un serio ripensamento.
    Ciao
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.