13 messaggi dal 13 gennaio 2005
Rieccomi.
Scusate se posto ancora, ma ho 1 problema che nn capisco

Sempre nella mia creazione "DEMO" ho realizzato un'ulteriore paginetta per la configurazione di alcuni parametri, degli indirizzi E-Mail per le notifiche

Ho creato il DB in Access, ho quindi realizzato una semplice pagine che recupera i dati salvati nel DB e li mostra all'interno di alcune TextBox.

Vorrei dare la possibiltà di modificare questi valori e, alla pressione di un Button, aggiornare i valori nel DB. ho quindi creato una Function UPDATE, richiamata dal click sul button, per tale scopo.

il problema è che, senza nessun messaggio di errore apparente, di fatto il DB non viene aggiornato!!

posto il codice:

' Aggiorna i dati nel DB secondo le modifiche della pagina **************************
    Function updateSetting(ByVal idContatto As Integer, ByVal cInfo As String, ByVal cNotifica As String) As Integer


        Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)

        Dim queryString As String = "UPDATE [Contatti] SET [CInfo]=@CInfo, [CNotifica]=@CNotifica WHERE ([Contatti].[i"& _
            "dContatto] = @idContatto)"

        Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
        dbCommand.CommandText = queryString
        dbCommand.Connection = dbConnection

        'Parametri
        Dim dbParam_idContatto As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
        dbParam_idContatto.ParameterName = "@idContatto"
        dbParam_idContatto.Value = idContatto
        dbParam_idContatto.DbType = System.Data.DbType.Int32
        dbCommand.Parameters.Add(dbParam_idContatto)

        Dim dbParam_cInfo As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
        dbParam_cInfo.ParameterName = "@CInfo"
        dbParam_cInfo.Value = cInfo
        dbParam_cInfo.DbType = System.Data.DbType.String
        dbCommand.Parameters.Add(dbParam_cInfo)

        Dim dbParam_cNotifica As System.Data.IDataParameter = New System.Data.OleDb.OleDbParameter
        dbParam_cNotifica.ParameterName = "@CNotifica"
        dbParam_cNotifica.Value = cNotifica
        dbParam_cNotifica.DbType = System.Data.DbType.String
        dbCommand.Parameters.Add(dbParam_cNotifica)

        Dim rowsAffected As Integer = 0
        dbConnection.Open
        Try
            rowsAffected = dbCommand.ExecuteNonQuery
        Finally
            dbConnection.Close
        End Try

        Return rowsAffected


    End Function



semplicemente richiamate in questo modo

rit = updateSetting(CInt(dataSet.tables(0).rows(0).item(0)), txtEInfo1.text, txtENotif1.text)


tutti i valori passati, verificati, sono corretti. per finire, il DB ha la seguente struttura:

Contatti(idContatto, idProgetto, CInfo, CNotifica)
Progetti(idProgetto, Progetto)


dove, in CInfo e in CNotifica, stanno gli indirizzi EMail.

Scusate se mi sono dilungato.. ma a me pare tutto corretto. sicuramente mi sfugge qualche cosa.

Commenti? Grazie ancora!!
Commenta il blocco Try...Catch... in modo tale da rendere evidente l'eccezione non gestita. Ovviamente con un blocco Try... Catch... di errori non ne vedrai mai!

Dim rowsAffected As Integer = 0 
dbConnection.Open 
'Try 
rowsAffected = dbCommand.ExecuteNonQuery 
'Finally 
dbConnection.Close 
'End Try 


Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
13 messaggi dal 13 gennaio 2005
il fatto è che semplicemente mi aggiorna 0 righe.. ma nn mi rende errori!

Come se la Query fosse sintatticamente corretta ma non ben formata (non fa quello che dovrebbe fare...)

Cmq provo con TRY..Ck per vedere se trovo qualcosa di diverso..

Vi farò sapere!
Probabilmente hai un errore nella query o non hai i permessi di scrittura sul file MDB... Verifica bene!

Anche se il tuo codice è esatto, l'inserimento non può andare a buon fine.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it
13 messaggi dal 13 gennaio 2005
Ho risolto...

..il codice che ho postato era quello generato in automatico da WebMatrix. peccato che abbia messo nell'ordine sbagliato i paramentri: riordinandoli secono l'ordine di comparsa della query si è messo tutto a funzionare..


..Grazie per il supporto! ;-)
Se il codice chiamante non è sbagliato, in genere l'eccezione è dovuta a delle sviste sul codice SQL.

Capita!

Ho piacere che tu abbia risolto.

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.