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 et tables


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 18
    Points
    18
    Par défaut DatagridView et tables
    Bonjour à tous,

    voici mon soucis :



    Nuance SPU est une clé primaire.

    J'aimerais relier les deux colonnes (famille de nuance et Nuance SPU) de la table du haut dans la table du bas ( famille nuances et liste de nuances TYPESPU). J'ai fais une requete pour la deuxieme table qui, en fonction du choix de la combobox, va recuperer la valeur de la nuance et l'affiche dans "famille nuances" cependant si on decide de modifier dans la première table le nom de la famille d'une nuance la deuxieme table ne change pas..

    Pourquoi ne pas avoir créer qu'une seule table ? Car j'ai pas mal de tables qui vont reprendre le même principe : c'est-à-dire qu'ils vont avoir besoin de la nuance ainsi que de sa famille. Si je decide alors de changer le nom d'une famille pour une certaine nuance, je n'ai pas envie de tout changer pour toute les tables, j'aimerais qu'il le fasse automatiquement.

    Voila, si quelqu'un a un avis ou un conseil, car là je patoge un peu !
    Merci

  2. #2
    Membre averti Avatar de Saintelaitlait
    Homme Profil pro
    Responsable ServiceDesk
    Inscrit en
    Août 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable ServiceDesk
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 179
    Points : 355
    Points
    355
    Par défaut
    Salut,


    Si tu conserve le nom de la famille de nuance dans la table des nuance SPU, tu as de la redondance de données. Et ca c'est mal

    Tu devrait avoir l'id de ta famille dans ta table nuance.

    De cette manière, tu peux changer le nom de famille aussi souvent que tu veux.

    tu fera donc : (je dit ca en étant aucunement en connaissance de tes table)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select nuance_spu.nom_nuance, famille_nuance.name
    from nuance_spu
    inner join famille_nuance 
      ON famille_nuance.id=nuance_spu.id_famille
    Logic is like the sword -- those who appeal to it, shall perish by it.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Saintelaitlait Voir le message
    Salut,


    Si tu conserve le nom de la famille de nuance dans la table des nuance SPU, tu as de la redondance de données. Et ca c'est mal

    Tu devrait avoir l'id de ta famille dans ta table nuance.

    De cette manière, tu peux changer le nom de famille aussi souvent que tu veux.

    tu fera donc : (je dit ca en étant aucunement en connaissance de tes table)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select nuance_spu.nom_nuance, famille_nuance.name
    from nuance_spu
    inner join famille_nuance 
      ON famille_nuance.id=nuance_spu.id_famille

    J'ai pas trop compris

    La première table devrait avoir une ID ?
    Du genre ID_Nuance c'est bien ça ? Car je n'ai pas de soucis de redondance ^^
    Dan cet exemple du dessus j'ai trois tables : table_liste_nuance (table en haut) et table_ensemble_nuance (table en bas) et une troisième table : table_famille (table qui regroupe que les familles de nuances)

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    Citation Envoyé par warri0r21 Voir le message
    Car je n'ai pas de soucis de redondance ^^


    Quand on regarde table_liste_nuance, on s’aperçoit que tout ces champs se retrouvent dans table_ensemble_nuance, donc c'est de la redondance...

    L'idéal aurait été, comme le dit Saintelaitlait,de mettre une clé primaire sur table_liste_nuance et de mettre une clé étrangère dans table_ensemble_nuance qui pointait vers cette première. De cette manière vous pouvez modifier la table table_liste_nuance sans modifier la seconde. Si vous avez besoin de l'information dans la seconde, vous faites la jointure donnée précédemment par Saintelaitlait

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    j'ai suivi vos conseils et j'ai fais quelques test assez simple pour mieux voir comment je pourrai developper ma base après. Mais j'ai quelque soucis :



    J'ai créer une FK entre Entreprise de la table_client et IDentreprise de la table_entreprise.

    Voici ma table très simple mais ce que je cherche depuis le debut (interet de mon post) c'est de pouvoir afficher dans la table_client le nom de l'entreprise et non son Identifiant.

    De plus, si par exemple je rajoute une colonne (lieu entreprise) dans ma BDD pour la table_client j'aimerai que cette colonne soit relié avec le nom de l'entreprise lors de tout changement ^^

    Merci a vous!

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Dans l'absolu il "suffit" de rajouter une colonne de type comboBox dans le dataGridView qui contiendra la table des entreprises et qui sera liée au client via la FK.

    Lien MSDN pour DataGridViewComboBoxColumn avec exemple à la fin.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    Dans l'absolu il "suffit" de rajouter une colonne de type comboBox dans le dataGridView qui contiendra la table des entreprises et qui sera liée au client via la FK.

    Lien MSDN pour DataGridViewComboBoxColumn avec exemple à la fin.
    En effet, c'est ce que j'ai fais j'ai ajouter dans ma BDD une colonne (Nom entreprise) et dans visual j'ai relié cette combobox à la FK entre la table entreprise et la table client. Mais malheuresement ça ne marche pas

    EDIT : j'ai affectueé toutes ses manips de combobox via winform qui permet de relier rapidement chaque combobox avec telle ou telle bindingsource .

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par warri0r21 Voir le message
    EDIT : j'ai affectueé toutes ses manips de combobox via winform qui permet de relier rapidement chaque combobox avec telle ou telle bindingsource .
    Malheureusement je n'ai jamais utilisé les winform pour faire du binding, je préfère poser dans le concepteur mes composants (dataGridView, Bouton et autres) et les lier par le code. Je trouve qu'on peut aller plus loin plus facilement par le code (même si les bases prennent légèrement plus de temps à coder) car il y a plein d'exemple de code sur MSDN.

    Donc désolé mais je ne serais t'aider en mode design

Discussions similaires

  1. [Visual Studio][Débutant] DataGridView et tables multiples
    Par Anawae dans le forum Visual Studio
    Réponses: 0
    Dernier message: 10/06/2013, 11h01
  2. DataGridView : 2 tables
    Par JeanClaudeDus dans le forum C#
    Réponses: 3
    Dernier message: 02/05/2013, 18h41
  3. [Débutant] DataGridView et tables liées
    Par cln dans le forum C#
    Réponses: 2
    Dernier message: 11/10/2011, 11h36
  4. Afficher dans DataGridView des tables relationnelles
    Par sphynxounet dans le forum C#
    Réponses: 0
    Dernier message: 16/09/2010, 11h49
  5. [DataGridView] la Table ne s'affiche pas :(
    Par LJL51 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/08/2008, 10h11

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