Ciao a tutti....eccomi qui con l'ennesimo problema coi dataset (che giuro che non userò mai più per i progetti futuri).
Vi ipotizzo uno scenario:
TABELLE:
- Persone
- id_Per
- nome_Per
- Oggetti
- id_Ogg
- idPer_Ogg
- nome_Ogg
La tabella Persone ha una relazione uno-a-molti con la tabella Oggetti che viene definita con un vincolo tra l'id della persona (id_Per) e il campo iPer_Ogg (nella tabella Oggetti).
Per leggere i dati uso 2 semplici datagridview che riempio tramite i rispettivi bindingsource collegati ad un'istanza del dataset le cui tabelle riempio eseguendo un FILL() al LOAD del form che le contiene.
Sin qui tutto semplice...
La relazione tra le 2 datatable è vincolata con UPDATE/DELETE/INSERT a CASCADE.
Ora detto ciò io mi aspetto che se Aggiorno o Elimino una datarow dalla datatable PERSONE in automatico (a CASCADE appunto) mi venga gestito l'evento sulla tabella OGGETTI ma così non avviene....
Quando aggiungo una nuova riga alla tabella Persone funziona tutto fino al nuovo "Fill()" della tabella dove mi da un errore...
Il codice è questo:
e l'errore è questo:codice:Dim r As DataSet1.personeRow= Me.ds.persone.NewpersoneRow r.nome_Per = TextBox1.Text Me.ds.persone.AddpersoneRow(r) Dim TA As New DataSet1TableAdapters.personeTableAdapter TA.Update(Me.ds.persone) TA.Fill(Me.ds.persone)
'Impossibile cancellare la tabella persone. I vincoli imposti da ForeignKeyConstraint fk_oggetti_persone comporterebbero ripercussioni sulle righe figlio in oggetti"
Sostanzialmente siccome ho impostato un CLEAR automatico prima di ogni FILL(), che ovviamente deve essere eseguito per pulire il datatable prima di ricaricare i dati, mi dice che i vincoli non gli permettono di fare il CLEAR perchè influisce sulle righe figlio...ma le righe figlio sono in un altro bindingsource e un'altra datagridview...
Qualcuno mi sa dare una mano? Perchè io ormai sono allibita dai limiti di questo tipo di gestione dei dati...