Ajouter un niveau de noeud dans un treeview (BDD SQL Server)
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 :
Code:
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 |
Jusqu'ici tout roule et pas de problème mais...
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 !! :mrgreen:
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