CancelEdit su bindingSource [RISOLTO]

di il
3 risposte

CancelEdit su bindingSource [RISOLTO]

Salve a tutti

        // SERVICES - RETURN FROM ADD/UPDATE RECORD
        private void BtnReturnService_Click(object sender, EventArgs e)
        {
            // end edit
            this.tblUserBindingSource.EndEdit();
            this.tblServiceBindingSource.EndEdit();
            // check pending changes
            if (this.dataSetServices.HasChanges())
            {
                if (MessageBox.Show(@"Do you want to abandon pending changes?", 
                                    "Info",MessageBoxButtons.YesNo,MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    // abandon the changes
                    this.dataSetServices.RejectChanges();
                    //this.tblUserBindingSource.CancelEdit();
                    //this.tblServiceBindingSource.CancelEdit();
                }
                else { return; }
            }
            // exit tabpage Editing mode and return home tabpage
            MyExitEditingMode();
        }

Con questo metodo si abbandonano le modifiche in sospeso sui rispettivi bindingSource per le due tabelle TblService e TblUser Relazionate uno a molti

La form che ospita queste due sorgenti contiene :

  • tante TextBox quanti sono le colonne della tabella TblService che sono direttamente associate nelle proprietà del dataBinding con la tblServiceBindingSource - NomeColonnaTabella
  • una dataGridView  popolata dai records relazionati alla tabella TblUser con la fKTblUserTblServiceBindingSource che è la chiave esterna di relazione

Tutto funziona correttamente sia in fase di inserimento , aggiornamento ed eliminazione records.


Il problema si verifica quando si decide di abbandonare la form e di non salvare le modifiche in sospeso.

con il  tblUserBindingSource.CancelEdit() e tblServiceBindingSource.CancelEdit() ,  cancella le modifiche in sospeso solo di tblUserBindingSource e non riesco a capire perchè non cancella anche le modifiche in tblServiceBindingSource

A questo punto mi sono rifugiato e risolto momentaneamente, con dataSetServices.RejectChanges(); e in questo caso tutto funziona come si deve.

Dove sbaglio con il cancelEdit ?
E' opportuno usare il RejectChanges del dataset ? 

Grazie !!!

:-)

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte