DataSet

Résolu
Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 - 25 août 2006 à 09:49
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 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 !!

8 réponses

Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 1
25 août 2006 à 11:33
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 !
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
25 août 2006 à 11:42
Voui c'est ce que je te proposais juste un post plus haut ;-)

<hr size="2" />VC# forever
3
Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 1
25 août 2006 à 10:03
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"
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
25 août 2006 à 10:06
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 1
25 août 2006 à 10:20
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"
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
25 août 2006 à 10:27
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
0
Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 1
25 août 2006 à 10:56
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]);
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 60
25 août 2006 à 11:07
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
0
Rejoignez-nous