Bij het werken met een dataSet in C# / .NET 1.1 krijg ik telkens de volgende System Exception:
"Cannot clear table tableParent because ForeignKeyConstraint Relatie enforces constraints and there are child rows in tableChilds."
Wat ik probeer is de twee gerelateerde tabellen tableParent en tableChilds te legen met de methode .Clear():
tableParent.Clear();
tableChilds.Clear();
Hier ontstaat de Exception.
Eerst dacht ik: ik draai de volgorde om:
tableChilds.Clear();
tableParent.Clear();
Want als de Childs leeg is dan zijn er geen gerelateerde records en kun je wissen. Dat gaat niet. Weer dezelfde Exception. Dat snap ik niet, want de tabel tableChilds is toch leeg? Vanwaar die child Rows?
Dan besluit ik eerst die hele relatie te wissen:
dataset.Relations.Clear();
drRelatie = null;
tableChilds.Clear();
tableParent.Clear();
Weer die Exception. Dat snap ik nog minder, want de relatie heb ik gewist! En toch enforcet die nog een contraint?
Als ik vervolgens nog eerst de regel
dataset.EnforceConstraints = false;
toevoeg, dan werkt de code wel. Maar dit voelt aan als een work-around. Het lijkt me niet netjes.
Wat begrijp ik nu niet goed en weet iemand een nette oplossing voor het run-time leegmaken van tabellen?
"Cannot clear table tableParent because ForeignKeyConstraint Relatie enforces constraints and there are child rows in tableChilds."
Wat ik probeer is de twee gerelateerde tabellen tableParent en tableChilds te legen met de methode .Clear():
tableParent.Clear();
tableChilds.Clear();
Hier ontstaat de Exception.
Eerst dacht ik: ik draai de volgorde om:
tableChilds.Clear();
tableParent.Clear();
Want als de Childs leeg is dan zijn er geen gerelateerde records en kun je wissen. Dat gaat niet. Weer dezelfde Exception. Dat snap ik niet, want de tabel tableChilds is toch leeg? Vanwaar die child Rows?
Dan besluit ik eerst die hele relatie te wissen:
dataset.Relations.Clear();
drRelatie = null;
tableChilds.Clear();
tableParent.Clear();
Weer die Exception. Dat snap ik nog minder, want de relatie heb ik gewist! En toch enforcet die nog een contraint?
Als ik vervolgens nog eerst de regel
dataset.EnforceConstraints = false;
toevoeg, dan werkt de code wel. Maar dit voelt aan als een work-around. Het lijkt me niet netjes.
Wat begrijp ik nu niet goed en weet iemand een nette oplossing voor het run-time leegmaken van tabellen?