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

    aiuto urgente con la query update per il database!

    Ciao ragazzi.
    Ho un piccolo problema con la query "Update" per aggiornare i dati in una tabella del mio database.
    Ho eseguito il debug, ho inserito i breakpoint per vedere se l'esecuzione era corretta, i dati modificati li prende e li legge però a quanto pare non li memorizza nel database perchè poi quando chiudo il debug e vado a vedere nel database, non ha fatto nessuna modifica
    vi posto il codice così magari riuscite a capire meglio, almeno spero, dove sta il problema perchè mi sto scervellando ma non io non lo trovo:
    codice:
     
    Dim sql2 As String 
                Dim connectionstring2 = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=" + Server.MapPath("..\..\db\dbNautica.mdb").ToString 
                sql2 = "UPDATE Noleggio SET Nome= """ + textNome.Text + """," 
                sql2 += " Descrizione= """ + textDescrizione.Text + """ ," 
                sql2 += " PrezzoGiorno= """ + textPrezzoG.Text + """," 
                sql2 += " PrezzoOra= """ + textPrezzoO.Text + """," 
                sql2 += " Categoria= """ + textCategoria.Text + """," 
                sql2 += " WHERE ID=" + textID.Text + ";" 
                Dim myconnection2 As New OleDbConnection(connectionstring2) 
                Dim mycommand2 As New OleDbCommand(sql2, myconnection2) 
                myconnection2.Open() 
                On Error Resume Next 
                mycommand2.ExecuteNonQuery() 
                myconnection2.Close() 
                InserimentoImbarcazione.Visible = True 
                ElencoImbarcazioniNoleggio.Visible = True 
                ModificaCancella.Visible = False 
                confermaCancellazione.Visible = False

  2. #2
    controlla che l'istruzione sia corretta, soprattutto nella parte WHERE...

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    44
    Ho controllato già..ho inserito i breakpoint e sia la query che tutto il resto è giusto...ecco perchè mi sto scervellando..perchè non riesco a capire dov'è il problema..i dati modificati li prende correttamente...e anche quelli non modificati...solo ke non memorizza niente nel database...

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    44
    Ho provato a seguire il tuo consiglio Optime, ho tolta la on error e mi esce, in debug, il seguente errore:

    viene evidenziato in verde questo "myCommand.ExecuteNonQuery()" ed esce scritto "Tipi di dati non corrispondenti nell'espressione criterio."

    ...che vuol dire?????

  6. #6
    vuol dire che la query è sbagliata!

    posta il valore della variabile SQL2 (metti un breakpoint su myconnection2.Open() e ispeziona il valore di sql2, copialo e postalo qui)

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    44
    Premetto che ho cambiato un pò il codice..ma non di molto, è similissimo, lo posto qui:
    codice:
    Dim connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=" + Server.MapPath("..\..\db\dbNautica.mdb").ToString
            Dim update As String
            update = "UPDATE Noleggio SET "
            update += "Nome=""" + textNome.Text.ToString + """"
            update += ", Descrizione=""" + textDescrizione.Text.ToString + """"
            update += ", PrezzoGiorno=""" + textPrezzoG.Text.ToString + """"
            update += ", PrezzoOra=""" + textPrezzoO.Text.ToString + """"
            update += ", Categoria=""" + textCategoria.Text.ToString + """"
            update += " WHERE ID=""" + textID.Text + """;"
            Dim myConnection As New OleDbConnection(connectionstring)
            Dim myCommand As New OleDbCommand(update, myConnection)
            myConnection.Open()
            On Error Resume Next
            myCommand.ExecuteNonQuery()
            myConnection.Close()
            ConfermaModifica.Visible = True
            ModificaCancella.Visible = False
    ho inserito come mi hai detto tu Optime il breakpoint a "myConnection.open()" e anche a "Dim myCommand As New OleDbCommand(update, myConnection)" per verificare la query completa che è la seguente:

    "UPDATE Noleggio SET Nome="prova1", Descrizione="testo", PrezzoGiorno="10", PrezzoOra="20", Categoria="Barca" WHERE ID="25";"

    mi sembra che sia corretta..o sbaglio??????

  8. #8
    no, non è corretta. primo perché racchiudi i valori tra virgolette ( " ) anziché tra apici ( ' ). secondo perché stai trattando dei valori che immagino numerici (prezzo, ID, ecc) come delle stringhe (i numeri non vanno tra apici)

    sistema, dai

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    44
    Ok allora tolgo .toString a tutti tanto cmq ho capito che non servono a molto..alla fine forzano soltanto a diventare stringhe e in alcuni dati come prezzo non vanno bene...e poi sinceramente le virgolette le ho sempre messe in qualunque query che ho fatto, anche di inserimento..come mai alle altre andava bene e a questa query no????

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    44
    perfetto Optime...ho aggiustato togliendo le "" al prezzoGiorno e prezzoOra che sn numerici e ho tolto a tutti il .toString e ora ha funzionato....GRAZIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE. ..ti devo un favore

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.