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 :

Insert à partir d'un treeview


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut Insert à partir d'un treeview
    Bonjour !

    J'ai un treeview dans une form, que je remplis via un autre treeview.
    Je voudrai savoir comment il serait possible pour faire des INSERT dans une base de données à partir des données du treeview ?

    Merci d'avance
    Cordialement,
    Kelegan

  2. #2
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est un peu trop vague pour pouvoir te répondre... pourrais-tu donner plus de détails ? Quelle est la partie qui te pose problème au juste ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    C'est vrai qu'en relisant mon post, je me trouve un peu vague aussi ^^

    Hé bien en faite, j'ai un treeview et je voudrai que les éléments de mon treeview, via un bouton de mise à jour, se mette à jour dans ma table.

    Donc, je voudrai insérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO table VALUE(parent1,enfant1)
    INSERT INTO table VALUE(parent1,enfant2)
    Et ainsi de suite. Comprenez-vous mieux ?

    Je ne vois pas du tout comment coder ça. Et je ne sais même pas si c'est possible à vrai dire. Mais je pense que oui !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    Nous travaillons actuellement sur le même sujet, il faut en fait au niveau du MCD de la base avoir deux tables avec une liaison 1-n la première :

    Table1
    Id_table1 (PK)
    Filsde (entier long) si = 0 alors racine

    Table2 (enfants)
    Ptr_Table1 (coté n de la relation)
    Id_table1 (enregistrement de la table1)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Bonjour,
    Donc si je comprends bien

    Table1
    Id_table1 (PK)
    Filsde (entier long) si = 0 alors racine

    "Filsde" détermine le nombre d'enfant que le parent a, c'est bien ça ?


    Table2 (enfants)
    Ptr_Table1 (coté n de la relation)
    Id_table1 (enregistrement de la table1)

    Quelle information possède Ptr_Table1 ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    "Filsde" détermine le nombre d'enfant que le parent a, c'est bien ça ?
    Mais non, le champs FilsDe est un entier long qui contient l'Id du père de l'enregistrement en cours.

    Quelle information possède Ptr_Table1 ?
    Il contient l'Id du coté 1 de la relation (Ptr pour pointeur vers)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Ah oui d'accord ! Au temps pour moi !

    J'ai compris !

    Mais par contre, je ne vois pas du tout la procédure pour l'enregistrement. Tu peux m'expliquer comment vous allez vous servir de ces tables ?

    J'ai comme idée de "jouer" avec les boucles pour insérer. C'est peut-être une bêtise

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    Chaque objet métier contenu dans le treeview hérite de l'objet treenode. Chacun de ces objets métier implémente une interface d'accès aux bases de données.

    Pour enregistrer ces objets dans la bases il y a plusieurs possibilités soit à chaque ajout d'un node, soit par le biais d'un parcours d'arbre.
    De même pour reconstituer un arbre à partir de la base de donnée il faut :

    une requête des enregistrements dont filsde = 0 donne les racines de l'arbre, puis pour chaque racine on cherche les fils (utilisation de la jointure 1 à n) et on répète jusqu'à ce que la requête qui cherche les fils renvoie rien là on est en présence d'une feuille.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    D'accord ! Je vais essayer cette voie là !

    Merci de m'avoir expliquer ton raisonnement !

    Ça à l'air d'être une masse de boulot, j'aime ça

  10. #10
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Le plus simple est de parcourir l'arbre récursivement. Schématiquement, ça donne un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    void InsertNodeValues()
    {
        InsertNodeValues(null, treeView1.Nodes);
    }
     
    void InsertNodeValues(string parent, TreeNodeCollection nodes)
    {
        foreach(var childNode in nodes)
        {
            if (parent != null)
                InsertNode(parent, childNode.Text);
            InsertNodeValues(childNode.Text, childNode.Nodes);
        }
    }
     
    void InsertNode(string parent, string child)
    {
        // Fais ton INSERT en base de données ici
    }

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    C'est ce que je pensais aussi ! On parcourt chaque branche du parent, avant de passer au parent suivant, et ainsi de suite !

    merci Tomlev et Geo2A pour votre aide !

    Je vous dirai quand j'aurai mis au point ce petit bout de code et que ça fonctionne !

Discussions similaires

  1. Insert à partir d'une autre requête
    Par DjyDjy dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/03/2007, 20h48
  2. Réponses: 1
    Dernier message: 23/01/2007, 15h57
  3. Réponses: 7
    Dernier message: 03/07/2006, 14h17
  4. Insertion à partir d'un exécute
    Par Portekoi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/02/2006, 11h21
  5. insert à partir d'un script php
    Par illegalsene dans le forum Oracle
    Réponses: 2
    Dernier message: 05/10/2005, 17h01

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