Salve a tutti,
c# App Windows Form - database sqlserver express
Nel database ci sono due Tabelle Relazionate Uno-Molti con Aggiornamento e Delete in Cascade
L'applicazione prevede il Backup del database , l'utente può salvare il database in un qualsiasi momento.
Fino a qui tutto funziona a regola d'arte.
Il problema si verifica in fase di Restore del database dal Backup.
- Il Restore viene eseguito correttamente e il dataSet riflette correttamente le Tabelle e le relazioni. con le chiavi esterne…(verificato con il debug entrando in progettazione del dataset e confermato se viene chiusa e riaperta l'App)
Dopo il restore del database si deve ripopolare una DataGridView che è già stata popolata in fase di Load Form….
a tal fine si esegue il metodo TableAdapter.Fill(dataSet.MyTable) e questo restituisce errore in quanto presente un vincolo con un altra tabella dove è previsto l' On Delete Cascade.
Pertanto non è possibile in questi casi ricaricare la DataGridView
Errore:
System.Data.InvalidConstraintException:
'Impossibile cancellare la tabella TblService. I vincoli imposti da ForeignKeyConstraint FK_TblUser_TblService
comporterebbero ripercussioni sulle righe figlio in TblUser.'
Come risolvere questo tipo di problema ? (ovviamente si presenta solo per le tabelle relazionate, per le altre tabelle il Fill si può fare tutte le volte che si vuole)
(La datagridview viene caricata solo con i dati di una tabella e il tableAdapter e il BindigSource riflettono direttamente la Tabella, non ci sono query o altre tipo di origini dati in questo caso)
Grazie !
;-)