47 votes

DataTable appartient déjà à un autre DataSet

Cette erreur se produit lors de l'ajout d'une table de données d'un ensemble de données à un autre ."DataTable appartient déjà à un autre DataSet."

 dsformulaValues.Tables.Add(m_DataAccess.GetFormulaValues
(dv.ToTable.DefaultView.ToTable(False, strSelectedCols)).Tables(0))

39voto

Nathaniel Layton Points 181

La réponse acceptée n'est pas très bonne. Le clonage doit toujours être une dernière option.

Voici un moyen de contourner le problème sans encourir les frais généraux du clonage.

         DataSet ds = GetData1();

        DataSet ds2 = GetData2();

        //Assuming you know you've got good data

            DataTable dt = ds2.Tables[0];
            ds2.Tables.Remove(dt);
            dt.TableName = "PortedTable";//you may need to change the table name to prevent conflicts
            ds.Tables.Add(dt);

2voto

Abbas Points 3737

Essayez d'appeler cette méthode :

DataTable dt = dv.ToTable.DefaultView.ToTable(False, strSelectedCols)).Tables(0).Clone()

Cela créera une copie du DataTable et l'affectera à la cible DataSet :

ds.Tables.Add(dt)

0voto

zmbq Points 18714

Je suppose que cela signifie que le DataTable appartient à un autre DataSet...

Vous pouvez sérialiser le DataTable en XML, puis le désérialiser dans votre DataSet cible.

0voto

Gavin Fang Points 104

Je pense que vous devriez créer un nouveau DataTable et importer la structure et les données dans le nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X