Dim ARBORESCENCE As New m_ARBORESCENCE(0)
If SelID = 0 Then Ajouter2()
Dim conn = New SQLiteConnection("Data Source=BDD.s3db;Version=3")
Using (conn)
conn.Open()
Dim sql = "SELECT * FROM ARBORESCENCE"
Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn)
Dim da As New SQLiteDataAdapter
da.SelectCommand = cmdDataGrid
Dim dt As New DataTable
da.Fill(dt)
dgvDataArbo.DataSource = dt
End Using
TreeViewToolBox.ExpandAll()
MsgBox("enregistré")
Private Sub Ajouter2()
Dim ARBORESCENCE = New m_ARBORESCENCE(DBNewIndexARBORESCENCE)
ARBORESCENCE.FILS = fils.Text
ARBORESCENCE.INDEXFILS = filsindex.Text
ARBORESCENCE.PARENT = parent.Text
ARBORESCENCE.INDEXPARENT = parentindex.Text
ARBORESCENCE.key = Textkey.Text
DBaddARBORESCENCE(ARBORESCENCE)
End Sub
Public Sub DBaddARBORESCENCE(ByVal ARBORESCENCE As m_ARBORESCENCE)
Try
Dim strSQL As String = "INSERT INTO ARBORESCENCE VALUES (@Id,@FILS,@INDEXFILS,@PARENT,@INDEXPARENT,@key)"
Dim cmd = New SQLiteCommand(strSQL, CON)
cmd.Parameters.AddWithValue("@ID", ARBORESCENCE.ID)
cmd.Parameters.AddWithValue("@FILS", ARBORESCENCE.FILS)
cmd.Parameters.AddWithValue("@INDEXFILS", ARBORESCENCE.INDEXFILS)
cmd.Parameters.AddWithValue("@PARENT", ARBORESCENCE.PARENT)
cmd.Parameters.AddWithValue("@INDEXPARENT", ARBORESCENCE.INDEXPARENT)
cmd.Parameters.AddWithValue("@key", ARBORESCENCE.key)
cmd.ExecuteNonQuery()
cmd.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Dim ARBORESCENCE As New m_ARBORESCENCE(0) If SelID = 0 Then Ajouter2() Dim conn = New SQLiteConnection("Data Source=BDD.s3db;Version=3") Using (conn) conn.Open() Dim sql = "SELECT * FROM ARBORESCENCE" Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn) Dim da As New SQLiteDataAdapter da.SelectCommand = cmdDataGrid Dim dt As New DataTable da.Fill(dt) dgvDataArbo.DataSource = dt End Using TreeViewToolBox.ExpandAll() MsgBox("enregistré")
Private Sub Ajouter2() Dim ARBORESCENCE = New m_ARBORESCENCE(DBNewIndexARBORESCENCE) ARBORESCENCE.FILS = fils.Text ARBORESCENCE.INDEXFILS = filsindex.Text ARBORESCENCE.PARENT = parent.Text ARBORESCENCE.INDEXPARENT = parentindex.Text ARBORESCENCE.key = Textkey.Text DBaddARBORESCENCE(ARBORESCENCE) End Sub
Public Sub DBaddARBORESCENCE(ByVal ARBORESCENCE As m_ARBORESCENCE) Try Dim strSQL As String = "INSERT INTO ARBORESCENCE VALUES (@Id,@FILS,@INDEXFILS,@PARENT,@INDEXPARENT,@key)" Dim cmd = New SQLiteCommand(strSQL, CON) cmd.Parameters.AddWithValue("@ID", ARBORESCENCE.ID) cmd.Parameters.AddWithValue("@FILS", ARBORESCENCE.FILS) cmd.Parameters.AddWithValue("@INDEXFILS", ARBORESCENCE.INDEXFILS) cmd.Parameters.AddWithValue("@PARENT", ARBORESCENCE.PARENT) cmd.Parameters.AddWithValue("@INDEXPARENT", ARBORESCENCE.INDEXPARENT) cmd.Parameters.AddWithValue("@key", ARBORESCENCE.key) cmd.ExecuteNonQuery() cmd.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Sub DBaddARBORESCENCE(ByVal ARBORESCENCE As m_ARBORESCENCE) Try Dim strSQL As String = "INSERT INTO ARBORESCENCE VALUES (@Id,@FILS,@INDEXFILS,@PARENT,@INDEXPARENT,@key)" Dim cmd = New SQLiteCommand(strSQL, CON) cmd.Parameters.AddWithValue("@ID", ARBORESCENCE.ID) cmd.Parameters.AddWithValue("@FILS", ARBORESCENCE.FILS) cmd.Parameters.AddWithValue("@INDEXFILS", ARBORESCENCE.INDEXFILS) cmd.Parameters.AddWithValue("@PARENT", ARBORESCENCE.PARENT) cmd.Parameters.AddWithValue("@INDEXPARENT", ARBORESCENCE.INDEXPARENT) cmd.Parameters.AddWithValue("@key", ARBORESCENCE.key) cmd.ExecuteNonQuery() cmd.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
cmd.Parameters.AddWithValue("@key", ARBORESCENCE.key)
sub DBaddARBORESCENCE (ByVal ARBORESCENCE As m_ARBORESCENCE)tu enregistres des objets de types m_ARBORESCENCE qui à priori viennent de tes noeuds de treeview.
'''A l'ouverture de la form Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '''Connxion à la base de donnée BDD et acces à la table ARBORESCENCE Dim conn = New SQLiteConnection("Data Source=BDD.s3db;Version=3") Try Using (conn) conn.Open() Dim sql = "Select * FROM ARBORESCENCE" Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn) Dim da As New SQLiteDataAdapter da.SelectCommand = cmdDataGrid 'datatable dta crée qui va enrichir la BDD et treeview Dim dta As New DataTable da.Fill(dta) ''BDD ARBORESEBCE alimentéé dgvDataArbo.DataSource = dta ''épuration du treeview TreeViewToolBox.Nodes.Clear() ''Alimentation du treeview For Each dr As DataRow In dta.Rows AddNode(dr("PARENT").ToString, dr("FILS").ToString) Next end if
Imports System.Windows.Forms Class NoeudJulia Inherits TreeNode Public Property ID As Integer Public Property IdParent As Integer Public Property IdEnfant As Integer Public Property Enfant As NoeudJulia End Class
Imports System Imports System.Collections.Generic Imports System.Data Imports System.IO Imports System.Linq Imports System.Windows.Forms Public Partial Class frmJulia Inherits Form Private fichierCsv As String = "noeudsJulia.csv" Public Sub New() InitializeComponent() 'si le fichier existe déjà, il faut le lire If File.Exists(fichierCsv) Then butCreerListe.Enabled = False butLire.Enabled = Not butCreerListe.Enabled End Sub Private noeuds As List(Of NoeudJulia) ''' <summary> '''Création de la liste "neuve" '''</summary> ''' <param name="sender"></param> '''<param name="e"></param> Private Sub butCreerListe_Click(ByVal sender As Object, ByVal e As EventArgs) noeuds = New List(Of NoeudJulia) From { New NoeudJulia With { .ID = 1, .IdEnfant = 2, .IdParent = 0, .Name = "Nom 1", .Text = "Nom 1" }, New NoeudJulia With { .ID = 2, .IdEnfant = 3, .IdParent = 1, .Name = "Nom 2", .Text = "Nom 2" }, New NoeudJulia With { .ID = 3, .IdEnfant = 4, .IdParent = 2, .Name = "Nom 3", .Text = "Nom 3" }, New NoeudJulia With { .ID = 4, .IdEnfant = 0, .IdParent = 3, .Name = "Nom 4", .Text = "Nom 4" } } AfficheNoeuds() End Sub ''' <summary> ''' Affiche la liste en cours ''' </summary> Private Sub AfficheNoeuds() dataGridView1.DataSource = Nothing dataGridView1.DataSource = noeuds treeView1.Nodes.Clear() For Each n As NoeudJulia In noeuds n.Enfant = noeuds.SingleOrDefault(Function(x) x.ID = n.IdEnfant) If n.IdParent = 0 Then treeView1.Nodes.Add(n) Else treeView1.SelectedNode.Nodes.Add(n) End If treeView1.SelectedNode = n Next End Sub ''' <summary> ''' Enregistrement dans le fichier CSV ''' </summary> '''<param name="sender"></param> ''' <param name="e"></param> Private Sub butEnregistrer_Click(ByVal sender As Object, ByVal e As EventArgs) File.WriteAllLines(fichierCsv, noeuds.[Select](Function(n) String.Format("{0};{1};{2};{3}", n.ID, n.IdParent, n.IdEnfant, n.Name))) butCreerListe.Enabled = False butLire.Enabled = True End Sub Private Sub butLire_Click(ByVal sender As Object, ByVal e As EventArgs) noeuds = (From ligne In File.ReadAllLines(fichierCsv) Let tab = ligne.Split(";"c) Select New NoeudJulia With { .ID = Convert.ToInt32(tab(0)), .IdParent = Convert.ToInt32(tab(1)), .IdEnfant = Convert.ToInt32(tab(2)), .Name = tab(3), .Text = tab(3) }).ToList() AfficheNoeuds() End Sub End Class
Dim trace As String = System.DateTime.Now.ToString("ddMMyyyy" & "HHmmss") ' Add(Of String, String) Dim newNode As New TreeNode With {.Name = trace, .Text = StatusDate} 'Dim newNode As TreeNode = New TreeNode(StatusDate) TreeViewToolBox.SelectedNode.Nodes.Add(newNode)
''Alimentation du treeview For Each dr As DataRow In dta.Rows AddNode(dr("PARENT").ToString, dr("FILS").ToString) Next
Public Sub AddNode(parentNode As String, nodeText As String) Dim node As New List(Of TreeNode) node.AddRange(TreeViewToolBox.Nodes.Find(parentNode, True)) If Not node.Any Then node.Add(TreeViewToolBox.Nodes.Add(parentNode, parentNode)) End If node(0).Nodes.Add(nodeText, nodeText) End Sub
Private Sub Ajouter2() Dim ARBORESCENCE = New m_ARBORESCENCE(DBNewIndexARBORESCENCE) ARBORESCENCE.FILS = fils.Text ARBORESCENCE.INDEXFILS = filsindex.Text ARBORESCENCE.PARENT = parent.Text ARBORESCENCE.INDEXPARENT = parentindex.Text DBaddARBORESCENCE(ARBORESCENCE) End Sub
Public Structure m_ARBORESCENCE Dim ID As Integer Dim FILS As String Dim INDEXFILS As String Dim PARENT As String Dim INDEXPARENT As String Public Sub New(ByVal Idx1 As Integer) ID = Idx1 FILS = "" INDEXFILS = 0 End Sub End Structure
Public Structure m_ARBORESCENCE Dim ID As Integer Dim FILS As String Dim INDEXFILS As String Dim PARENT As String Dim INDEXPARENT As String Public Sub New(ByVal Idx1 As Integer) ID = Idx1 FILS = "" INDEXFILS = 0 End Sub End Structure
peut il y avoir plusieurs enfants par parent ?et le membre Fils est juste une string. Il serait plus logique que ce soit une collection de m_Arborescence (une liste par exemple).
oui bien sur
Imports System.Data.SQLite Imports System.IO Module modSQLITE Public Database As String Dim CON As New SQLiteConnection Public Sub OpenDataBase() Try Database = My.Application.Info.DirectoryPath & "\BDD.s3db" CON.ConnectionString = "Data Source=" & Database CON.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ' Public Sub CloseDatabase() CON.Close() End Sub Public Structure m_ARBORESCENCE Dim ID As Integer Dim FILS As String Dim INDEXFILS As String Dim PARENT As String Dim INDEXPARENT As String Dim key As String Public Sub New(ByVal Idx1 As Integer) ID = Idx1 FILS = "" INDEXFILS = 0 key = 0 End Sub End Structure Public Sub DBaddARBORESCENCE(ByVal ARBORESCENCE As m_ARBORESCENCE) Try Dim strSQL As String = "INSERT INTO ARBORESCENCE VALUES (@Id,@FILS,@INDEXFILS,@PARENT,@INDEXPARENT,@key)" Dim cmd = New SQLiteCommand(strSQL, CON) cmd.Parameters.AddWithValue("@ID", ARBORESCENCE.ID) cmd.Parameters.AddWithValue("@FILS", ARBORESCENCE.FILS) cmd.Parameters.AddWithValue("@INDEXFILS", ARBORESCENCE.INDEXFILS) cmd.Parameters.AddWithValue("@PARENT", ARBORESCENCE.PARENT) cmd.Parameters.AddWithValue("@INDEXPARENT", ARBORESCENCE.INDEXPARENT) cmd.Parameters.AddWithValue("@key", ARBORESCENCE.key) cmd.ExecuteNonQuery() cmd.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Function DBgetARBORESCENCE(ByVal Idx As Integer) As m_ARBORESCENCE Dim strSQL As String = "SELECT * FROM ARBORESCENCE WHERE ID= " & Idx Dim ARBORESCENCE As New m_ARBORESCENCE Dim cmd = New SQLiteCommand(strSQL, CON) Dim DR As SQLiteDataReader = cmd.ExecuteReader While (DR.Read()) ARBORESCENCE.ID = DR(0) ARBORESCENCE.FILS = DR(1) ARBORESCENCE.INDEXFILS = DR(2) ARBORESCENCE.PARENT = DR(3) ARBORESCENCE.INDEXPARENT = DR(4) End While DR.Close() cmd.Dispose() Return ARBORESCENCE End Function Public Sub DBdeleteARBORESCENCE(ByVal Idx1 As Integer) Dim strSQL As String = "DELETE FROM ARBORESCENCE WHERE ID= " & Idx1 Dim cmd = New SQLiteCommand(strSQL, CON) cmd.ExecuteNonQuery() cmd.Dispose() End Sub Public Function DBNewIndexARBORESCENCE() As Integer Dim NewID As Integer = 1 Dim cmd = New SQLiteCommand("SELECT MAX(ID) FROM ARBORESCENCE", CON) Try Dim DR As SQLiteDataReader = cmd.ExecuteReader While (DR.Read()) NewID = DR(0) End While DR.Close() Return NewID + 1 Catch ex As Exception Return NewID End Try End Function End Module
Imports System Imports System.Collections.Generic Imports System.Data Imports System.Data.SQLite Imports System.Linq Imports System.Windows.Forms ''' <summary> ''' Classe métier ''' </summary> Public Class m_ARBORESCENCE ''' <summary> ''' Construction d'une instance à partir d'une ligne de bdd ''' </summary> Public Sub New(ByVal DR As DataRow) Nom = DR("Nom").ToString() ID = Convert.ToInt32(DR("ID")) IdParent = Convert.ToInt32(DR("IdParent")) End Sub ''' <summary> ''' Construction d'une instance à partir des données saisies ''' </summary> Public Sub New(ByVal LeNom As String, ByVal LIdParent As Integer, ByVal CON As SQLiteConnection) Nom = LeNom IdParent = LIdParent InsertBdd(CON) End Sub ''' <summary> ''' Insère cette nouvelle valeur dans la BDD et récupère l'ID ''' </summary> ''' <param name="CON"></param> Private Sub InsertBdd(ByVal CON As SQLiteConnection) Try Dim strSQL As String = "INSERT INTO ARBORESCENCE VALUES (@ID,@Nom,@IdParent)" Dim cmd = New SQLiteCommand(strSQL, CON) cmd.Parameters.AddWithValue("@IdParent", IdParent) cmd.Parameters.AddWithValue("@Nom", Nom) cmd.Parameters.AddWithValue("@ID", Nothing) 'pour que l'auto incrément s'active cmd.ExecuteNonQuery() cmd.Dispose() Dim sql As String = "Select last_insert_rowid() FROM ARBORESCENCE" cmd = New SQLiteCommand(sql, CON) ID = Convert.ToInt32(cmd.ExecuteScalar()) 'on récupère l'id créé cmd.Dispose() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Property Nom As String Public Property ID As Integer Public Property IdParent As Integer End Class ''' <summary> ''' Classe qui associe une donnée de la BDD et son apparence en TreeNode ''' </summary> Public Class NoeudJulia Inherits TreeNode ''' <summary> ''' Construction d'une instance de NoeudJulia, à partir d'une ligne de la BDD ''' </summary> ''' <param name="DR"></param> ''' <param name="LesNoeuds"></param> Public Sub New(ByVal DR As DataRow, ByVal LesNoeuds As List(Of NoeudJulia)) MyBase.New() Valeur = New m_ARBORESCENCE(DR) Text = Valeur.Nom If Valeur.IdParent = 0 Then LesNoeuds.Clear() Else Dim pere As NoeudJulia = LesNoeuds.SingleOrDefault(Function(nj) nj.Valeur.ID = Valeur.IdParent) If pere Is Nothing Then Throw New Exception("Parent introuvable") pere.Nodes.Add(Me) End If LesNoeuds.Add(Me) End Sub ''' <summary> ''' Création d'un NoeudJulia à partir des données saisies ''' </summary> ''' <param name="Nom"></param> ''' <param name="Parent"></param> ''' <param name="LesNoeuds"></param> Public Sub New(ByVal Nom As String, ByVal Parent As NoeudJulia, ByVal LesNoeuds As List(Of NoeudJulia), ByVal CON As SQLiteConnection) MyBase.New(Nom) Valeur = New m_ARBORESCENCE(Nom, Parent.Valeur.ID, CON) Parent.Nodes.Add(Me) LesNoeuds.Add(Me) End Sub Public Property Valeur As m_ARBORESCENCE End Class
Imports System Imports System.Collections.Generic Imports System.Data Imports System.Linq Imports System.Windows.Forms Imports System.Data.SQLite Public Partial Class frmJulia Inherits Form Private Database As String Private CON As SQLiteConnection = New SQLiteConnection() Private Sub OpenDataBase() Try Database = String.Format("{0}\BDD.db", Application.StartupPath) CON.ConnectionString = "Data Source=" & Database CON.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub New() InitializeComponent() End Sub 'liste qui va accueuillir les noeuds Private lesNoeuds As List(Of NoeudJulia) = New List(Of NoeudJulia)() Private Sub ChargeBdd() Dim conn As SQLiteConnection = New SQLiteConnection("Data Source=BDD.db;Version=3") Try Using (conn) conn.Open() Dim sql As String = "Select * FROM ARBORESCENCE ORDER BY IdParent" 'il est impératif pour la suite que le datareader soit trié de la sorte Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn) Dim da As SQLiteDataAdapter = New SQLiteDataAdapter() da.SelectCommand = cmdDataGrid Dim dta As DataTable = New DataTable() da.Fill(dta) 'lecture des données et création de la liste de NoeudJulia For Each dr As DataRow In dta.Rows New NoeudJulia(dr, lesNoeuds) Next End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ''' <summary> ''' Affiche les données, ordonnées par leur ID ''' </summary> Private Sub AfficheDatas() treeView1.Nodes.Clear() treeView1.Nodes.Add(lesNoeuds(0)) Dim lesValeur = lesNoeuds.[Select](Function(nj) nj.Valeur).OrderBy(Function(v) v.ID) dataGridView1.DataSource = Nothing dataGridView1.DataSource = lesValeur.ToList() End Sub Private Sub frmJulia_Load(ByVal sender As Object, ByVal e As EventArgs) OpenDataBase() ChargeBdd() AfficheDatas() End Sub ''' <summary> ''' Ajoute une valeur au noeud sélectionné, le nom est la date et l'heure ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub butAjouter_Click(ByVal sender As Object, ByVal e As EventArgs) Dim parent As NoeudJulia = CType(treeView1.SelectedNode, NoeudJulia) Dim nouveau As NoeudJulia = New NoeudJulia(DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"), parent, lesNoeuds, CON) AfficheDatas() End Sub End Class
'lecture des données et création de la liste de NoeudJulia For Each dr As DataRow In dta.Rows New NoeudJulia(dr, lesNoeuds) Next
j'aime bein l'idée de l'ID uniqueelle n'est pas de moi cette idée, c'est "juste" l'état de l'art.
For Each dr As DataRow In dta.Rows Dim nouveau As New NoeudJulia(dr, lesNoeuds) Next
Public Sub New(ByVal Nom As String, ByVal Parent As NoeudJulia, ByVal LesNoeuds As List(Of NoeudJulia), ByVal CON As SQLiteConnection) MyBase.New(Nom) Valeur = New m_ARBORESCENCE(Nom, Parent.Valeur.ID, CON) Parent.Nodes.Add(Me) LesNoeuds.Add(Me) End Sub
Private Sub frmJulia_Load_1(sender As Object, e As EventArgs) Handles MyBase.Load Dim parent As NoeudJulia = CType(TreeView1.SelectedNode, NoeudJulia) Dim nouveau As NoeudJulia = New NoeudJulia(DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"), parent, lesNoeuds, CON) AfficheDatas() End Sub
Handlesqui vont raccrocher les Sub aux évènements FormJulia_Load et butAjouter_Click
Imports System Imports System.Collections.Generic Imports System.Data Imports System.Linq Imports System.Windows.Forms Imports System.Data.SQLite Public Partial Class frmJulia Inherits Form Private Database As String Private CON As SQLiteConnection = New SQLiteConnection() Private Sub OpenDataBase() Try Database = String.Format("{0}\BDD.db", Application.StartupPath) CON.ConnectionString = "Data Source=" & Database CON.Open() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub New() InitializeComponent() End Sub 'liste qui va accueuillir les noeuds Private lesNoeuds As List(Of NoeudJulia) = New List(Of NoeudJulia)() Private Sub ChargeBdd() Dim conn As SQLiteConnection = New SQLiteConnection("Data Source=BDD.db;Version=3") Try Using (conn) conn.Open() Dim sql As String = "Select * FROM ARBORESCENCE ORDER BY IdParent" 'il est impératif pour la suite que le datareader soit trié de la sorte Dim cmdDataGrid As SQLiteCommand = New SQLiteCommand(sql, conn) Dim da As SQLiteDataAdapter = New SQLiteDataAdapter() da.SelectCommand = cmdDataGrid Dim dta As DataTable = New DataTable() da.Fill(dta) 'lecture des données et création de la liste de NoeudJulia For Each dr As DataRow In dta.Rows New NoeudJulia(dr, lesNoeuds) Next End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ''' <summary> ''' Affiche les données, ordonnées par leur ID ''' </summary> Private Sub AfficheDatas() treeView1.Nodes.Clear() treeView1.Nodes.Add(lesNoeuds(0)) Dim lesValeur = lesNoeuds.[Select](Function(nj) nj.Valeur).OrderBy(Function(v) v.ID) dataGridView1.DataSource = Nothing dataGridView1.DataSource = lesValeur.ToList() End Sub Private Sub frmJulia_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load OpenDataBase() ChargeBdd() AfficheDatas() End Sub ''' <summary> ''' Ajoute une valeur au noeud sélectionné, le nom est la date et l'heure ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub butAjouter_Click(ByVal sender As Object, ByVal e As EventArgs) Handles butAjouter.Click Dim parent As NoeudJulia = CType(treeView1.SelectedNode, NoeudJulia) Dim nouveau As NoeudJulia = New NoeudJulia(DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"), parent, lesNoeuds, CON) AfficheDatas() End Sub End Class