IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[1.1] Comparaison de DataSet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Par défaut [1.1] Comparaison de DataSet
    Bonjour,

    Je voudrais comparer deux DataSet (enfin plutot les objets DataTable qu'ils contiennent) pour savoir si ils sont identiques (en structure et en contenu) ou non.
    J'ai essayé la méthode Equals() et en comparant les resultats retournés par GetHashCode() sur chacune des collections en vain.

    Y a t'il moyen de faire ce test sans tester table par table et ligne par ligne ?

    Merci,

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Tu peux peut-être essayer la méthode suivante :

    Tu créé un nouvel objet DataSet et ou tu vas merger les données de tes 2 DataSets. Voici un petit exemple :

    Imaginons que tu as tes 2 datasets à comparer s'appelant ds1 et ds2, et ds3 est ton dataset qui va servir faire la comparaison.
    Un ptit bou de code pour illustrer tout ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ds3.Merge(ds1) ; 
    ds3.AcceptChanges() ; 
    ds3.Merge(ds2) ; 
    ds3.GetChanges() ;
    Après je te promets rien, mais GetChanges() devrait te renvoyer la différence entre les 2.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Par défaut
    J'ai une exception au moment du deuxième Merge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
    Enfin c'est surement du à la structure de mes DataSet. Sur chacun d'entre eux j'ai une DataRelation...

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Essaie ça en plus avant les merge sur le ds3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds3.EnforceConstraints = false;
    Ceci désactive les contraintes, c'est pas top mais bon.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Par défaut
    Le résultat est toujours pas concluant...
    J'ai tout envoyé vers un fichier XML :
    ds3.GetChanges().WriteXml("output.xml");
    Et dedans en fait on retrouve nos deux datasets pourtant égaux.

    J'ai aussi essayé d'utiliser HasChange(), là encore ça ne marche pas.


    Merci pour ton aide,


    Edit :
    Malgré une petite perte de perf, il y a peut être une solution en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds1.GetXml() != ds2.GetXml()
    Faute de mieux je vais faire de cette manière. Si quelqu'un a une meilleure solution, qu'il le dise !

    Merci,

Discussions similaires

  1. [2008R2] Comparaison de valeurs et somme sur plusieurs datasets
    Par gregWeb dans le forum SSRS
    Réponses: 1
    Dernier message: 22/07/2011, 15h14
  2. Réponses: 3
    Dernier message: 19/11/2010, 09h29
  3. [DataSet] Comparaison mise-à-jour
    Par Friedrick dans le forum C#
    Réponses: 0
    Dernier message: 22/01/2009, 19h24
  4. [DataSet] Comparaison très lente
    Par Friedrick dans le forum C#
    Réponses: 11
    Dernier message: 07/01/2009, 21h20
  5. comparaison de 2 dates
    Par eisti dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2003, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo