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

VB.NET Discussion :

Datagridview/ Select avec jointure entre deux tables


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut Datagridview/ Select avec jointure entre deux tables
    Bonjour,

    J'ai deux tables Details et Entete.

    Je fais la reuête Select suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select * from Entete inner join Details On Entete.id = Details.Id where xxxx"
    Je désire afficher le résultat de cette requête dans un DatagridView.

    Le problème c'est que si l'id x dispose de 10 items de détails, j'aurai la même ligne entête dans le datagridview qui se répète 10 fois !

    Si quelqu'un pourrait me dire comment je pourrai afficher une seule fois la ligne entête résultat de la requête Select dans le datagridview.

    Merci.

  2. #2
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Bonjour,

    l'option DISTINCT te permet déviter les doublons
    voir tuto

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT DISTINCT * FROM Entete INNER JOIN Details ON Entete.id = Details.Id WHERE xxxx "

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    Bonjour,

    l'option DISTINCT te permet déviter les doublons
    voir tuto

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT DISTINCT * FROM Entete INNER JOIN Details ON Entete.id = Details.Id WHERE xxxx "

    Merci hunteshiva pour votre réponse.
    Même avec un DISTINCT les lignes se répètent dans le datagridview.

  4. #4
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Sous quel format est ta BDD? Mysql? Acces?

    je pense qu'il faudrait que tu vérifie la validité de la requête avant.
    *directement dans la BDD*

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    Sous quel format est ta BDD? Mysql? Acces?

    je pense qu'il faudrait que tu vérifie la validité de la requête avant.
    *directement dans la BDD*
    Je travaille avec SQL Server 2005.

  6. #6
    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
    Le problème c'est que si l'id x dispose de 10 items de détails, j'aurai la même ligne entête dans le datagridview qui se répète 10 fois !
    C'est le principe même d'un SELECT avec JOIN : ce type de requête renvoie une table avec comme colonnes celles de l'en-tete et celles des détails, sans notion de groupes ou d'arborescence.

    Pour améliorer l'affichage dans le dataGridView, je te suggère d'utiliser l'event CellFormatting pour particulariser l'affichage des en-têtes. On peut, par exemple, regarder si les collnne en-tête à formatter sont les mêmes que la ligne précédente:
    - Si oui, on met la couleur du texte (ForeColor) en bleu
    - Si non, on met la couleur en blanc(invisible) ou en gris clair.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/07/2014, 13h13
  2. Jointure entre deux tables avec close WHERE
    Par redoran dans le forum Requêtes
    Réponses: 5
    Dernier message: 31/05/2012, 11h12
  3. Requête SELECT avec jointure sur deux tables
    Par bud64 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/10/2010, 14h06
  4. [Débutant] select avec jointure entre 4 tables
    Par ulyssemac dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/11/2007, 19h39
  5. [c#]commande Select avec jointure de deux tables
    Par chorokari dans le forum Accès aux données
    Réponses: 6
    Dernier message: 18/10/2006, 14h47

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