Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    ExecuteNonQuery non salva dati

    Sto utilizzando del codice tipo:

    Codice PHP:
            public int updateCliente(int idClientestring nomestring cognome)
            {
                
    string query "";
                
    query "update tblClienti set nome='" nome.Replace("'""''") + "', cognome='" cognome.Replace("'""''") + "' where idCliente=" idCliente.ToString();
                
    OleDbConnection conn = new OleDbConnection(ConfigurationSettings.AppSettings["ConnString"]);
                
    conn.Open();
                
    OleDbCommand co = new OleDbCommand(queryconn);
                
    int a=co.ExecuteNonQuery();
                
    conn.Close();
                return 
    a;
            } 
    La funzione ritorna il valore 1 che dovrebbe essere il umero di righe interessate dall'update, non genera nessun tipo di eccezzione, di conseguenza peno che l'operazione sia andata bene, ma nel db non c'è traccia dell'aggiornamento...

    Come mai? dimentico qualcosa? Il db è Access 2003, sto lavorando su Windows Vista Bussiness e con provider Microsoft.Jet.OLEDB.4.0.

    Grazie a tutti per l'aiuto, sto impazzendo...
    http://www.easymemo.it - vCard ed agenda

  2. #2
    Il titolo dove cominciare con un [C#]...


    Sei sicuro della query? hai provato lo stesso a mettere un try con un catch con un sqlexception magari lo conta.

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    provato ad inserirla direttamente nel database e vedere se funziona così la query?

    a volte potrebbe essere un apice il problema..

  4. #4
    Ho verificato la query prendendo il valore della variabile che la contiene direttamente in access e funzionava...

    Il metodo si trova all'interno di una classe utilizzata in un'applicazione windows form.

    Provato anche a mettere un try catch, ma non entra nel catch, e quello che più mi lasia sconcertato è che la funzione restituise sempre il valore corretto di record aggiornati...

    Un'altra cosa strana, è che se io modifico il record dalla mia applicazione, poi chiudo il form, ricerco il record per rimodificarlo lo vedo con l'aggiornamento eseguito, mentre il db non è aggiornato. Se chiudo l'applicazione e la riapro vedo il record non modificato.

    A questo punto ho due dubbi:
    - da qualche parte c'è una cache di dati su cui lavora l'applicazione, ogni volta che carico il form eseguo la query di select sul db, eppure vedo i dati aggiornati anche se nel db nn lo sono

    - C'è qualche problema di protezione di Windows Vista e/o Access 2003...
    http://www.easymemo.it - vCard ed agenda

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Dove si trova il database all'interno del disco?

    Se non è in una cartella preposta alla scrittura di dati, occhio alla virtualizzazione!

    Leggi questo articolo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Grazie per l'aiuto!

    o trovato soluzione al mio problema, ogni volta che si avvia il debug, il db viene copiato dalla sua posizione originale nella cartella bin/debug... riportandolo alla sitauzione iniziale...
    http://www.easymemo.it - vCard ed agenda

  7. #7
    SI esatto ci cascai pure io quando cominciai!!!!

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.