Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di beke82
    Registrato dal
    Mar 2004
    residenza
    Empoli
    Messaggi
    183

    Perchè non mi fa l'Update?

    Devo fare l'aggiornamento di una tabella ( tblInterventi ) così strutturata:
    Campo Chiave Cod_Inter ( contatore )
    Id_Sotto
    Num_Comm
    Codice
    Nome_Inter
    Data_Inter
    Ore_Inter

    Ed ho questa procedura associata all'evento Click di un bottone ( btnUpdate ):

    codice:
    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
    
    Dim connessione As String
    Dim conn As OleDbConnection
    Dim cmdUpdate As OleDbCommand
    Dim strUpdate As String
    
    connessione = ConfigurationSettings.AppSettings("conString")
    conn = New OleDbConnection(connessione)
    
    conn.Open()
    
    strUpdate = "Update tblInterventi Set tblInterventi.Id_Sotto=@under, tblInterventi.Num_Comm=@comm, tblInterventi.Codice=@persona, tblInterventi.Nome_Inter=@intername, tblInterventi.Data_Inter=@day, tblInterventi.Ore_Inter=@hours Where tblInterventi.Cod_Inter=@code"
    
    cmdUpdate = New OleDbCommand(strUpdate, conn)
    
    cmdUpdate.Parameters.Add("@code", txtCodice.Text)
    cmdUpdate.Parameters.Add("@under", DropDownList1.SelectedItem.Value)
    cmdUpdate.Parameters.Add("@comm", DropDownList2.SelectedItem.Value)
    cmdUpdate.Parameters.Add("@persona", txtPersona.Text)
    cmdUpdate.Parameters.Add("@intername", txtNome.Text)
    cmdUpdate.Parameters.Add("@day", txtDay.Text)
    cmdUpdate.Parameters.Add("@hours", txtHours.Text)
    
    
    cmdUpdate.ExecuteNonQuery()
    
    conn.Close()
    
    lblOK.Text = "AGGIORNAMENTO EFFETTUATO!"
    lblOK.Visible = True
    
    End Sub
    Fa tutto, mi stampa anche il contenuto della Label ( lblOk ), ma non mi fa l'aggiornamento nel DataBase.
    Come mai?
    Grazie per l'aiuto

    Beke
    Un Anello per domarli, un Anello per trovarli,
    un Anello per ghermirli e nel buio incatenarli ( J.R.R. Tolkien )

  2. #2
    Non vorrei scrivere una bestialità...Ma hai provato a passargli questo parametro come ultimo?
    cmdUpdate.Parameters.Add("@code", txtCodice.Text)

    Come primo parametro nella stringa SQL hai
    tblInterventi.Id_Sotto=@under

    Mentre come primo valore gli passo "@code", prova a rispettare l'ordine dei parametri della stringa SQL.
    Mi ricordo di aver avuto un problema simile con Access.
    Ciao

    Marco

  3. #3
    Utente di HTML.it L'avatar di beke82
    Registrato dal
    Mar 2004
    residenza
    Empoli
    Messaggi
    183
    Ho risolto il problema
    Ho dichiarato nella Page_Load
    codice:
    Session("Intervento")= txtCodice.text
    e nell'Update ho messo
    codice:
    dim inter as string
    
    inter=Session("Intervento")
    
    strUpdate = "Update tblInterventi Set tblInterventi.Id_Sotto=@under, tblInterventi.Num_Comm=@comm, tblInterventi.Codice=@persona, tblInterventi.Nome_Inter=@intername, tblInterventi.Data_Inter=@day, tblInterventi.Ore_Inter=@hours Where tblInterventi.Cod_Inter= " & inter & ""
    Ed ora funziona perfettamente
    Un Anello per domarli, un Anello per trovarli,
    un Anello per ghermirli e nel buio incatenarli ( J.R.R. Tolkien )

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Sinceramente trovo inutile e poco pratico usare una variabile di sessione per questo genere di cose.

    Secondo me era un problema di postback. Immagino che ti carichi i dati nella text box nell'evento page_load. Quando schiacci il pulsante per aggiornare l'evento page load viene eseguito nuovamente, percui nella textbox ti ritorna il valore del DB.
    per risolvere devi aggiongere:

    codice:
    if not page.ispostback then
       'codice che popola la text box
    end if

    Hey hey, my my Rock and roll can never die!

  5. #5
    Utente di HTML.it L'avatar di beke82
    Registrato dal
    Mar 2004
    residenza
    Empoli
    Messaggi
    183
    il controllo if che dici tu è presente nella page_load
    anche se non può sembrar il max come soluzione, però è efficace
    Un Anello per domarli, un Anello per trovarli,
    un Anello per ghermirli e nel buio incatenarli ( J.R.R. Tolkien )

  6. #6

    Re: Perchè non mi fa l'Update?

    Originariamente inviato da beke82
    [CODE]
    Dim conn As OleDbConnection
    strUpdate = "Update tblInterventi Set tblInterventi.Id_Sotto=@under, tblInterventi.Num_Comm=@comm, tblInterventi.Codice=@persona, tblInterventi.Nome_Inter=@intername, tblInterventi.Data_Inter=@day, tblInterventi.Ore_Inter=@hours Where tblInterventi.Cod_Inter=@code"

    cmdUpdate.Parameters.Add("@code", txtCodice.Text)
    il parametro code passalo per ultimo
    Scusa, che DataBase usi? Perchè ho visto che dichiari la connessione come OleDbConnection invece di SQLConnection.
    Se usi access, nella stringa SQL devi utilizzare i punti interrovativi al posto di @tuoParametro.
    Ho fatto una prova, ricreando la tua stessa situazione, mettendo i punti di domanda nella stringa SQL e passandogli @code come ultimo parametro invece che primo ed ha funzionato alla perfezione, mentre passandolo come primo parametro, non eseguiva l'update e non dava neppure errore...
    Ciao


    Marco

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.