DataSet [Résolu]

Cisaks 65 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2010 Dernière intervention - 25 août 2006 à 09:49 - Dernière réponse : cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention
- 25 août 2006 à 11:42
bonjour,

Je voudrais savoir comment faire pour mettre une ligne d'enregistrement ce trouvant dans un DataSet dans un autre DataSet qui a la meme structure ?
J'ai essaye avec merge mais ca ne fonctionne pas il m'ajoute la DataSet dans l'autre si bien que je me retrouve avec deux table a l'interieur de la dataset ... "dataSet.Merge(dataSet2);"

merci !!
Afficher la suite 

Votre réponse

8 réponses

Cisaks 65 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2010 Dernière intervention - 25 août 2006 à 11:33
+3
Utile
Je viens de trouver une solution :

                DataRow test = data.Tables[0].NewRow();
                for (int i = 0; i < dataSet.Tables[0].Rows[0].ItemArray.Length; i++)
                {
                    if (!(dataSet.Tables[0].Rows[0].ItemArray[i] is System.DBNull))
                        test[dataSet.Tables[0].Rows[0].Table.Columns[i].ColumnName] = dataSet.Tables[0].Rows[0].ItemArray[i];
                }

                data.Tables[0].Rows.Add(test);

Voila ;-)

merci encore Bidou !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cisaks
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 25 août 2006 à 11:42
+3
Utile
Voui c'est ce que je te proposais juste un post plus haut ;-)

<hr size="2" />VC# forever
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
Cisaks 65 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2010 Dernière intervention - 25 août 2006 à 10:03
0
Utile
j'ai essaye ausi ce genre de chose mais rien n'y fais:
    data.Tables[0].Rows.Add(dataSet.Tables[0].Rows[0]);

Il me dis que: "Cette ligne appartient deja a une autre Table"
Commenter la réponse de Cisaks
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 25 août 2006 à 10:06
0
Utile
Salut,
Merge veut dire fusionner et ce n'est pas ce que tu veux faire.
Tu veux juster ajouter une ligne d'une datatable d'un dataset, dans une autre datatable.
Donc tu peux faire : myDataTable.Rows.Add(myOtherDataTalbe.Rows[x]
);

<hr size="2" />VC# forever
Commenter la réponse de cs_Bidou
Cisaks 65 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2010 Dernière intervention - 25 août 2006 à 10:20
0
Utile
Merci pour la rapidite de ton message !
donc voici ce que j'ai fais:

                DataTable test = new DataTable("Toto");
                test = dataSet2.Tables[0];
                dataSet.Tables[0].Rows.Add(test.Rows[0]);

mais j'ai toujours ce fichu message d'erreur me disant: "Cette ligne appartient deja a une autre Table"
Commenter la réponse de Cisaks
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 25 août 2006 à 10:27
0
Utile
Tu peux faire un Clone de la DataTable, mais niveau performance c'est pas top (test = dataSet2.Tables[0].Clone();)
Sinon, un peu plus long à coder mais sûrement meilleur en terme de performance, tu peux lire toutes ta ligne (cellule par cellule) et insérer ça dans ton autre DataTable...

<hr size="2" />VC# forever
Commenter la réponse de cs_Bidou
Cisaks 65 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2010 Dernière intervention - 25 août 2006 à 10:56
0
Utile
Clone te permet juste de copier la strcuture, les schemas et les contraintes de la DataTable il ne mets pas les enregistrements .. :-(

En ce qui concerne le deuxieme cas je n'y arrive toujours pas toujours le meme message d'erreur:

                DataTable resultTable = dataSet.Tables[0].Clone();
                foreach (DataRow row in rows)
                    resultTable.ImportRow(row);
                dataSet.Tables[0].Rows.Add(resultTable.Rows[0]);
Commenter la réponse de Cisaks
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 25 août 2006 à 11:07
0
Utile
Pour la 2ème solution, on ne c'est pas compris...
Je disais de faire qqch comme ceci :


DataRow dr = mytable.Rows[0];
object o1 = dr[0];
object o2 = dr[1];
// Le mieux c'est peut etre de faire une boucle pour ça


Et ensuite tu fais l'insertion cellule par cellule dans ton autre table...


<hr size="2" />




VC# forever
Commenter la réponse de cs_Bidou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.