Sto tentando di rimuovere un datatable che è stato caricato in un set di dati ed è stato correlato. Ecco il codice che ho tentato.Come rimuovere un datatable da un set di dati (ha una serie di relazioni)
domain.EnforceConstraints = false;
if (domain.Tables["TABLE_NAME"] != null)
{
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables.Remove("TABLE_NAME");
}
domain.EnforceConstraints = true;
Questo genera un'eccezione al punto di rimuovere il tavolo, a causa di un vincolo di chiave esterna esistente. Sfortunatamente, il modo in cui la logica è non ho idea di quale sia il nome del vincolo [quindi non posso codificarlo con difficoltà].
È lì per eseguire questa operazione in modo più semplice, oppure posso ottenere alcuni suggerimenti su come individuare e rimuovere il vincolo che sta causando il mio problema.
Grazie in anticipo, Steve
-------------------------- RISPOSTA ---------- --------------
Non mi è stato permesso di rispondere alla mia domanda quindi ecco la soluzione che ho trovato. Questo snippet di codice ora funziona per me. Ho dovuto viaggiare la relazione con l'altro tavolo e rimuovere il vincolo da lì.
if (domain.Tables["TABLE_NAME"] != null)
{
for (int f = domain.Tables["TABLE_NAME"].ChildRelations.Count -1; f >=0; f--)
{
domain.Tables["TABLE_NAME"].ChildRelations[f].ChildTable.Constraints.Remove(domain.Tables["TABLE_NAME"].ChildRelations[f].RelationName);
domain.Tables["TABLE_NAME"].ChildRelations.RemoveAt(f);
}
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables["TABLE_NAME"].Constraints.Clear();
domain.Tables.Remove("TABLE_NAME");
}
dominio è un insieme di dati (di tipo System.Data.DataSet) ma sì, i dati sono stati caricati da SQL Server 2005 – Steve
@ Chris sta lavorando in memoria con oggetti ADO.NET, motore di database non è rilevante in questo contesto. –
Ho trovato che non avevo bisogno di fare le tre linee dominio . "TABLE_NAME". ChildRelations.Clear(); domain.Tables ["TABLE_NAME"]. ParentRelations.Clear(); domain.Tables ["TABLE_NAME"]. Constraints.Clear(); –