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

Accès aux données Discussion :

relation 1-n & datagrid


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut relation 1-n & datagrid
    bonjour,

    je souhaite afficher 1 seule ligne pour une relation 1-N dans mon datagrid.

    je m'explique:

    j'ai une table activite

    1 activite phytosanitaire 12H00 12H30
    2 activite phytosanitaire2 12H30 14H00

    j'ai une table est utilise

    1 produit1
    1 produit2
    1 produit3

    2 produit4

    je veux afficher dans mon datagrid

    activite phytosanitaire 12H 12H30 Produit1, Produit2, Produit3
    activite phytosanitaire 12H30 14H00 Produit4

    comment vous y prendriez vous pour obtenir ce resultat ? je veux 1 seule ligne par ligne d'activite.

    je propose d'utiliser une classe de propriete pour representer les colonnes et un array list contenant la classe en n exemplaire pour representer la table.
    Pour chaque ligne, je fais deux acces à la base, un acces à la table activite et un acces à la table de relation et je remplis l'objet.

    Pour 100 lignes dans la table, cela fera plus de 200 select dans le programme...

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Par défaut
    Je ne connais pas la réponse mais je suis très intéressé. Il existe forcément une best practice en .net
    Il s'agit si j'ai bien compris de ressortir de 2 tables une liste d'objets contenant des objets, en si possible 1 requête.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Déjà tu peux faire une jointure entre les 2 tables, pour obtenir:
    1 activite phytosanitaire 12H00 12H30 - produit1
    1 activite phytosanitaire 12H00 12H30 - produit2
    1 activite phytosanitaire 12H00 12H30 - produit3
    2 activite phytosanitaire 12H00 12H30 - produit4

    à partir de là, tu peux construire le texte:
    - Tu prends l'activité et le produit de la première ligne et tu crées une première ligne de texte avec ça.
    - Ensuite, à chaque ligne, si c'est la même activité que la ligne précédente, tu rajoutes le produit à la fin du texte. Sinon, tu crées une nouvelle ligne de texte avec la nouvelle activité, et ainsi de suite...

    Comme ça tu fais une seule requete en tout et pour tout

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut Fonction SQL
    je crois que j'ai resolu le probleme avec une fonction SQL qui fournit une chaine avec la liste pour chaque ligne.

    le seul inconvient, c'est qu'en terme de performance, ce n'est pas genial.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Par défaut
    Oui, mais j'aimerais tout de même aller plus loin sur le sujet.
    Les solutions que vous apportez m'apparaissent comme du bidouillage pour un problème classique

    Modèle relationnel :
    Un pays a plusieurs villes. J'ai donc une foreign key dans villes vers pays

    commandes
    id Prenom
    1 France
    2 Espagne
    3 Belgique

    Villes
    id paysid nom
    1 1 Paris
    2 1 Marseille
    3 1 Lyon
    4 2 Madrid
    5 2 Barcelone
    6 3 Anvers


    Je souhaite reproduire cette relation dans un Dataset. Un pays peut avoir plusieurs villes.
    Evidement, on a le problème du mapping objet-relationel qui est que
    le select avec jointure me renvoit une table à plat plutôt qu'une collection de collection d'objets
    bien rangés.
    Ce qui m'ennuie si je souhaite, par exemple, afficher un tableau imbriqué du type suivant.
    ----------------------
    | Paris |
    France | Marseille |
    | Lyon |
    ----------------------
    | Madrid |
    Espagne | Barcelone |
    Belgique| Anvers |
    ----------------------
    Comme les Dataset reproduisent la structure des données de la base, j'imagine qu'il y a
    un mécanisme simple et élégant pour remonter le dataset Pays-ville déjà rempli sans avoir à trop coder.
    Mais je ne trouve pas

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut Solution classique.
    La solution consiste à avoir un datagrid avec les pays et un data grid esclave avec les villes par pays.

    si tu veux afficher les villes dans le datagrid initial, tu es oblige de "bidouiller"...

Discussions similaires

  1. DataGrid et Dataset avec relation
    Par Koyote dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/01/2007, 11h06
  2. DataGrid relation pere/fils
    Par TheBlackReverand dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2007, 18h08
  3. [ADO.NET] remplaire datagrid "depuis table relation multiple"
    Par hoda dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 08h49
  4. [VB.NET] DataGrid et relations
    Par Birdie dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/10/2004, 13h54

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