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 :

comparaison de 2 champs dans un datasets à deux tables


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut comparaison de 2 champs dans un datasets à deux tables
    Bonjours,
    Depuis quelques jours je patauge sur une méthode de tris des lignes de mon dataGridView.
    En fait, j'ai crée un dataset Avec 2 tables, pour avoir générer une table parent et l'autre enfant.
    mon souhait est que tout enregistrement parent parent qui a un enregistrement enfant s'affiche de manière différente dans le dataGridView (soit la couleur de police, soit celle de fond).


    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Je ne crois pas qu'il existe quelque chose pour le faire directement, pour moi il faut que dans l'événement RowPrePaint dans lequel tu pourras vérifier si la ligne a des enfants et modifier son affichage en conséquence.

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Je ne suis pas un pro de SQL, mais il est possible de charger la table parent en créant un champs calculé NBENFANT avec le compte des enfants.
    Pour la syntaxe SQL de la commande SELECT de chargement (qui utilisera un OUTER JOIN), tu peux poster sur le forum SQL.

    Il suffit ensuite de gérer l'événement CellFormatting du DataGridView en testant la colonne NBENFANT (qui pourra être Visible=false) pour modifier la couleur de fond.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Il suffit ensuite de gérer l'événement CellFormatting du DataGridView en testant la colonne NBENFANT (qui pourra être Visible=false) pour modifier la couleur de fond.
    Je le cherchais cet événement mais je le trouvais plus c'est bien celui-ci à utiliser.

    Pour récupérer le nombre d'enfant c'est une bonne idée, sauf s'il peut ajouter/supprimer des enfants sans vouloir recharger toutes les données.

    Mais sinon, il est possible de faire une DataColumn calculée (avec une expression) qui compte le nombre d'enfant en suivant une relation.

    Disons que tu as une table Parent et une table Enfant, une relation nommée ParentEnfant, tu peux créer une DataColumn avec pour expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maColumn.Expression="Count(Child(ParentEnfant).UneColonneDeLaTableEnfant);
    L'avantage de cette solution, c'est que le calcul est dynamique et ne nécessite pas de refaire appel au serveur de BDD ou autre incrémentation/décrémentation du compteur.

Discussions similaires

  1. [OpenOffice][Base de données] Modification de champ dans une requete multi-table
    Par Kigwenn dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 15/06/2009, 09h44
  2. Comparaison de valeurs stockees dans un meme champ
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/02/2006, 21h33
  3. afficher les champs null de deux tables dans un select
    Par poil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/09/2005, 15h05
  4. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53
  5. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36

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