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
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
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 ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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 :
Et ainsi de suite. Comprenez-vous mieux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO table VALUE(parent1,enfant1) INSERT INTO table VALUE(parent1,enfant2)
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 !
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)
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 ?
Bonjour,
Mais non, le champs FilsDe est un entier long qui contient l'Id du père de l'enregistrement en cours."Filsde" détermine le nombre d'enfant que le parent a, c'est bien ça ?
Il contient l'Id du coté 1 de la relation (Ptr pour pointeur vers)Quelle information possède Ptr_Table1 ?
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
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.
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
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 }
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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 !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager