IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[treeview]insérer un noeud avec ses enfants


Sujet :

VB.NET

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut [treeview]insérer un noeud avec ses enfants
    Bonjour,

    J'ai construit un treeview avec les données d'une base de données.
    Il se trouve que je veux permettre à un utilisateur de copier un noeud avec tous ses enfants à l'endroit qu'il aura choisi dans le thésaurus.

    pour l'instant je parviens à copier le neoud lui même à un autre endroit du thésaurus mais pas ses enfants avec lui.
    Pouvez vous m'aide=r sur ce point car je butte là dessus depuis trop longtmeps et n'ai ps obtenu de résulta satisfaisant pour l'instant.

    La table GENERIQUES contient les trois champs : id_terme_source_g ( champ enfant) et id_terme_generique-(champ parent) et tv_loc qui indique l'index du terme c'est à dire sa position dans le treeview.



    la table TERMES contient tous les termes .

    voici le code utilisé jusqu'à maintenant

    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
    
    objDS.Tables("TERMES").Clear()
                    objDA = New SqlDataAdapter(strSQLTERMES, objConn)
                    objDA.Fill(objDS, "TERMES")
    n=TreeView1.Nodes.add(strlibelle)
    strlibelle est le libellé du terme saisi par l'utilisateur dans un input box
    Dim termeexiste as boolean
    
    For Each drTerme In objDS.Tables("TERMES").Rows'on suppose ici que la compparaison entre les deux termes a donné un resultat positif et on en arrive à termeexiste=true
                                                              
     termeexiste = True
                            ' si l'utilisateur dit qu'il souhaite réutiliser le même terme, alors ajouter ce terme avec tous ses spécifiques, en fait créer une nouvelle relation générique/spécifique avec comme générique le nouveau terme situé au-dessus dans l'arborescence
                            ident_terme_source_g = CType(drTerme.Item("ID_TERME"), Integer)
    
                           
                            If MessageBox.Show("Ce terme existe déjà dans la base de données, voulez-vous l'insérer à cet endroit à nouveau avec tous ses termes spécifiques?", "Ajout d'un nouveau terme", MessageBoxButtons.YesNoCancel) = DialogResult.Yes Then
    
                                'Avant tout nous devons augmenter de 1 la valeur de TV_LOC1 comme nous l'avons fait pour TV_LOC( je ne vous explique pas le détail mais c'est ainsi qu'on procède)
                                Dim tmpSQLCommand As String
                                Dim tmpResetTV_LOC1 As SqlCommand
                                tmpSQLCommand = "UPDATE GENERIQUES SET TV_LOC1 = TV_LOC1 + 1 WHERE ID_TERME_GENERIQUE = " & iParentID.ToString & " AND TV_LOC1 >= " & n.Index.ToString
    
                                tmpResetTV_LOC1 = New SqlCommand(tmpSQLCommand, objConn)
                                'on ouvre la connexion                            objConn.Open()
                                tmpResetTV_LOC1.ExecuteNonQuery()
                                tmpResetTV_LOC1.Dispose()
    
    
                                ' Mettons à jour la table des Generiques
                                strSQLInsertGeneriqueTermerepete = "INSERT INTO GENERIQUES( ID_TERME_SOURCE_G , ID_TERME_GENERIQUE, TV_LOC1 ) VALUES( " + ident_terme_source_g.ToString + " , " + iParentID.ToString + " , " & n.Index.ToString & " )"                            objinsertgeneriquetermerepete = New SqlCommand(strSQLInsertGeneriqueTermerepete, objConn)
                                objinsertgeneriquetermerepete.ExecuteNonQuery()
                                'on ferme la connexion
                                objConn.Close()
    
    
                                Exit For
                            Else 'si l'utilisateur a cliqué sur les touches 'annuler ' ou 'non' 
    
                                Exit Sub
                            End If 'fin de If MessageBox.Show("Ce terme existe déjà dans la base de données, voulez-vous l'insérer à cet endroit à nouveau avec tous ses termes spécifiques?", "Ajout d'un nouveau terme", MessageBoxButtons.YesNoCancel) = DialogResult.Yes Then
    
    
                        End If 'fin de If strLibelle.ToLower = CType(drTerme.Item("Lib_TERME"), String)
    Je vous remercie beaucoup de votre aide.
    Cordialement.
    Natahlie

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    tu dois trouver un exemple la http://bidou.ftp-developpez.com/Cour...migration3.pdf page 69

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut copie d'un noeud dans un treeview
    Bonjour,


    Je te remercie de ton aide.
    Il semble que le cas expliqué à la page 69 du document soit celui d'une copie d'un noeud selectionné par un utilisateur.
    Dans mon cas, il s'agit d'un noeud dont le texte existe déjà dans le treeview.
    Un message box en informe l'utilisateur et lui demande s 'il veut finalement recopier à l'endroit choisi ce noeud avec tous ses enfants .
    Je garde en mémoire le cas exposé à la page 69 car cela me servira surement pour plus tard.

    Cordialement.

    Nathalie

  4. #4
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Je ne comprends pas bien ce que tu entends par la. Pourrais tu me donner un exemple concret de ce que tu veux obtenir.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut copie d'un noeud dans un treeview
    Bonjour,

    Voilà ce qui se passe et ce que je souhaite:

    Un utilisateur saisit un nouveau terme dans un inputbox ; comme par hasard, ce terme existe déjà dans le treeview; j'en informe l'utilisateur et lui demande si malgré cela il veut à nouveau insérer à l'endroit qu'il a choisi le même terme
    avec tous ses enfants.
    Si c'est le cas, alors le terme doit apparaître à nouveau, avec tous ses enfants, à l'endroit choisi

    Ce n'est pas tout à fait du copier coller car dans le copier coller l'utilisateur sélectionne le terme qu'il veut copier, ce qui n'est pas tout à fait le cas ici.

    J'espère que tu comprends mieux ce que je souhaite faire.

    Merci beaucoup de ton aide.

    Cordialement.
    Nathalie

Discussions similaires

  1. Enregistrement d'un noeud avec ses descendants dans un graphe .
    Par malekmalek27021 dans le forum Général Java
    Réponses: 2
    Dernier message: 30/04/2014, 16h52
  2. Nadine Morano joue avec ses enfants à Grand Theft Auto 4, un jeu violent selon elle
    Par raptor70 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/10/2009, 18h55
  3. Réponses: 0
    Dernier message: 02/10/2009, 15h06
  4. [C#][2.0] TreeView: noeud avec enfant ou pas ?
    Par Louisa dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/08/2006, 11h07
  5. [C#] [XML] Insérer un noeud entre un parent et ses enfants
    Par frechy dans le forum Windows Forms
    Réponses: 10
    Dernier message: 04/04/2005, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo