Gestionale con Visual c# e Access Problema aggiornamento Tabella

di il
8 risposte

Gestionale con Visual c# e Access Problema aggiornamento Tabella

Salve a tutti,
innanzi tutto mi scuso se ho commesso qualche errore nel impostazione del Post.
Premetto che ho studiato c per dos, ormai vent' anni fa a scuola,
eppure mi sono messo in testa di ricominciare a programmare. Nella fattispece si tratta di un programma gestionale per l' ufficio con cui collaboro, in cui vorrei gestire Allievi e Corsi di un Agenzia formativa.
Ora il problema più grosso (a parte milioni di altri piccoli inconvenienti)è che una volta richiamata la tabella, riesco a modificarla, ma i cambiamenti non vengono salvati. Il codice del pulsante "Salva" è più o meno questo:
 private void btnSalva_Click(object sender, EventArgs e)
        {


            OleDbCommand resultsCommand = null;
            OleDbDataAdapter resultsAdapter = new OleDbDataAdapter();
            DataTable resultsTable = new DataTable();

            //Connessione al db dei corsi
            courseConnection = new OleDbConnection(Properties.Settings.Default.Percorso.ToString());
            //Apertura Connessione
            courseConnection.Open();
            try
            {
               
               
               
               
                resultsCommand = new OleDbCommand("UPDATE Allievi SET Corso ='" + comboBox1.SelectedValue + "'"+"where Codice_Fiscale= '									    "+txtCodiceFiscale.Text+"'", courseConnection); 
                resultsAdapter.UpdateCommand = resultsCommand;
               
                resultsAdapter.Update(resultsTable);
               
               
               
                grdAllievi.DataSource = resultsTable;
               
               

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Errore nel Proccessare SQL", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            resultsCommand.Dispose();
            resultsAdapter.Dispose();
            resultsTable.Dispose();

        }
Non so se si capisce qualcosa...

8 Risposte

  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Da quel che ricordo del DataAdapter dovrebbe mancare:
    resultsAdapter.Fill(resultsTable);
    prima dell'update.
    Veifica anche la query dove la where viene scritta attaccata al valore del combo ed il codice fiscale...ma presumo sia un problema di copia/incolla.
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Grazie,
    Ho provato ad aggiungere
    resultsAdapter.Fill(resultsTable);
    ma credo che funzioni solo con la propietà SelectCommand impostata, che come suggerisce il nome viene impostata con una query di tipo
    SELECT
    ...
    Provato comunque ad impostare .SelectCommand ma stesso problema, li pe li salva, ma al riavvio del programma le modifiche non vengono salvate.
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Se per Tabella intendi il datatable devi chiamare il metodo .AcceptChanges()
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Grazie,
    ho provato ad aggiungere .AcceptChanges() ma non funziona...
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Verifica nella finestra Proprietà del file MDB la proprietà [Copia nella directory di output ...] sia impostata su Non copiare.
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Ottoemmezzo ha scritto:


    Provato comunque ad impostare .SelectCommand ma stesso problema, li pe li salva, ma al riavvio del programma le modifiche non vengono salvate.
    dataAdpater.UpdateCommand = new SqlCommand(
    "UPDATE Categories SET CategoryName = @CategoryName " +
    "WHERE CategoryID = @CategoryID", connection);

    dataAdpater.UpdateCommand.Parameters.Add(
    "@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");

    SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add(
    "@CategoryID", SqlDbType.Int);
    parameter.SourceColumn = "CategoryID";
    parameter.SourceVersion = DataRowVersion.Original;

    DataTable categoryTable = new DataTable();
    dataAdpater.Fill(categoryTable);

    DataRow categoryRow = categoryTable.Rows[0];
    categoryRow["CategoryName"] = "New Beverages";

    dataAdpater.Update(categoryTable);
    Da msdn
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Grazie per l' aiuto ma continua a non Salvare. Possibile che il problema sia dovuto al fatto che la tabella che voglio aggiornare sia legata da una relazione molti a molti con un' altra, e che quindi bisogni agire anche sui figli?
  • Re: Gestionale con Visual c# e Access Problema aggiornamento Tabella

    Ottoemmezzo ha scritto:


    Grazie per l' aiuto ma continua a non Salvare. Possibile che il problema sia dovuto al fatto che la tabella che voglio aggiornare sia legata da una relazione molti a molti con un' altra, e che quindi bisogni agire anche sui figli?
    Innanzi tutto: Hai verificato il suggerimento di Gibra? Se no, inutile pensare ad altre soluzioni.
    Prova prima a spostare la directory del db esternamente al progetto
    Già una relazione molti a molti mi lascia perplesso, ma tant'è, non voglio entrare nel merito.
    Ovviamente non puoi aggiornare più tabelle se lette in JOIN ma questo dovrebbe sollevarti un'eccezione.
Devi accedere o registrarti per scrivere nel forum
8 risposte