Bonjour,
Je suis en découverte des treeviews actuellement et comment dire... je suis quelque peu en galère =D
Je vous expose mon problème :
J'ai une BDD (SQL Server) contenant 3 tables et pouvant en contenir plus par la suite. Pour l'instant j'ai :
- une table T_DEPARTEMENT avec : id_departement (PK int); nom_dpt(varchar)
- une table T_SERVICE avec : id_service (PK int); nom_service(varchar); id_departement(FK)
- une table T_LABO_GRPE avec : id_labo_grpe(PK int); nom_labo_grpe(varchar)
id_service(FK int)
J'ai, depuis cette base, créé un treeview me donnant la liste des départements et des services par arborescence ce qui donne cela :
Jusqu'ici tout roule et pas de problème mais...
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 '--------------------------------------- 'Chargement de l'arbre des départements '--------------------------------------- Protected Sub Charger_Departement() 'Dim compteur_node As Integer Dim tv_node As TreeNode Dim tv_sous_node As TreeNode 'Dim tv_sous_sous_node As TreeNode Dim phsel2 As String 'Dim phsel3 As String Dim mydataadapter As Data.SqlClient.SqlDataAdapter Dim mydataview As Data.DataView 'creation du dataset mydataset = New Data.DataSet() 'Mise à zéro du compteur de noeuds 'compteur_node = 0 'remplissage de la liste des départements '-------------------------------------- phsel = " SELECT DISTINCT t_departement.id_departement,t_departement.nom_dpt FROM t_departement, t_service " phsel = phsel + " WHERE t_departement.id_departement = t_service.id_departement" phsel = phsel + " ORDER BY id_departement" mydataset = New Data.DataSet() mydataadapter = New Data.SqlClient.SqlDataAdapter(phsel, connect_bd) mydataadapter.Fill(mydataset, "departement") mydataview = mydataset.Tables("departement").DefaultView Dim departement As Int16 For departement = 0 To mydataview.Count - 1 If Not IsDBNull(mydataview(departement)(0)) Then tv_node = New TreeNode tv_node.Value = mydataview(departement)(0) tv_node.Text = mydataview(departement)(1) Me.tv_test_trombi.Nodes.Add(tv_node) 'Sélection du noeud du département courant tv_test_trombi.Nodes(departement).Select() 'Remplissage de la liste des services pour le département phsel2 = " SELECT t_service.id_service,t_service.nom_service FROM t_service " phsel2 = phsel2 + " WHERE t_service.id_departement=" & mydataview(departement)(0) phsel2 = phsel2 + " ORDER BY id_service" mycommand = New Data.SqlClient.SqlCommand(phsel2, connect_bd) mydataread = mycommand.ExecuteReader() Do While mydataread.Read() tv_sous_node = New TreeNode tv_sous_node.Value = mydataread(0) tv_sous_node.Text = mydataread(1) tv_test_trombi.SelectedNode.ChildNodes.Add(tv_sous_node) Loop mydataread.Close() End If 'Suppression de la sélection du noeud du département courant tv_test_trombi.Nodes(departement).Selected = False Next End Sub
Mon problème et que je souhaite à partir de cela ajouter un troisième niveau de noeuds contenant les informations sur mes labo_groupe qui sont des "enfants" de services.
Et là... c'est le drame, blocage, je suis dessus depuis 1 semaine en essayant toute sorte de chose mais je ne vois pas comment faire alors, je tire la sonnette d'alarme et vous demande A L'AIDE !!
J'espère que j'ai été assez explicite dans l'exposition de mon problème et j'attends maintenant vos réponses svp =)
Je vous remercie !
PS : merci de ne pas me renvoyer vers d'autres liens du site car je crois avoir fais le tour déjà ^^
number09
Partager