Bonjour,
Je me tourne vers vous pour essayer de trouver une solution a mon problème qui n’est peux être pas si compliqué avec de l’expérience. J’ai écumé longuement la toile mais je trouve pas de chose exploitable dans mon cas ou je ne les comprend pas.
Je suis en cour d’écriture d’une application en VB.net (via Visual studio 2017) de saisi de matériaux dans une base de donnée. Cette application sera diffusée à des clients qui investisse dans le soft de CFAO, dont je suis formateur, intégrateur, revendeur.
Dans mon application je doit créer une arborescence de dossier. Ses infos sont stockées dans une base de donnée SQL sous la forme (ID unique ; ParentID ; Name ; Guid).
- Mon problème est que je n’arrive pas a créer l’arborescence à plus de deux niveau de façon propre. Je suis incapable de dire combien de niveau maximum il peut y avoir du fait que l’ajout de nouveau dossier et sous dossier est faisable dans le soft principale.
- Mon deuxième problème sera par la suite, quand je clic sur un des dossiers je devrais connaitre son ID dans la base SQL. Cette ID sert a associer des listes d’image ou de matériaux contenue sur une autre table. Attention je peux avoir plusieurs nom identique dans la Table SQL.
je connais l'événement click mais je ne visualise pas de façon de récupérer mon ID unique. Sur mes bouton dans une autre partie de mon programme j'utilise le TabIndex. Est ce que l'on peut faire la même dans ce cas?
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub TreeView1_Click(sender As Object, e As EventArgs) Handles TreeView1.Click End Sub
Je fais ma recherche SQL via une class SQLControl est celle-ci est retournée dans une variable « PUBLIC DBDT AS DATATABLE ».
Code VB.NET : 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
58
59
60
61 Public Class Texture Public SQL As New SQLControl Private Sub Texture_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim tnode As TreeNode Dim i As Integer = 0 'SQL.AddParam("@item", "%" & txtSearch.Text & "%") LoadGrid("SELECT * FROM texturemenutree order by [parentID],[ID] ") 'LoadGrid("SELECT * FROM texturemenutree where [parentID] = 0") If SQL.HasException(True) Then Exit Sub For Each r As DataRow In SQL.DBDT.Rows If r("parentid").ToString = 0 Then tnode = TreeView1.Nodes.Add(r("name").ToString) Dim ChildID As Integer ChildID = r("ID").ToString Dim dr() As System.Data.DataRow dr = SQL.DBDT.Select("ParentID='" & ChildID & "'") 'Dim childlist As TreeNode AddMoreChildren(dr, tnode.Index) Else End If Next End Sub Private Function LoadGrid(Query As String) SQL.ExecQuery(Query) ' ERROR HANDLING 'If SQL.HasException(True) Then Exit Function Return SQL.DBDT End Function Private Sub AddMoreChildren(ChildList, ParentLevel) 'MsgBox(ParentLevel.ToString) Dim tnode As TreeNode For Each r As DataRow In ChildList tnode = TreeView1.Nodes(ParentLevel).Nodes.Add(r("name".ToString)) Next End Sub End Class
Je vous remercie d'avance de votre aide
Partager