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

Windows Forms Discussion :

[C#] Mise a jour d'un treeview


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 108
    Points : 62
    Points
    62
    Par défaut [C#] Mise a jour d'un treeview
    Salut a tous,
    j'ecri en c# un ptit Programme qui dois presenter sous une vue en arbre les information d'une base de donnees. Ce programme doit egalement permettre la mise a jour des des nformation par DRAG and DROP.
    Jusque la j'ai pu m'ensortir. Mais information s'affiche dans mon TreeView et j'arive par drag and drop a changer l'affichage du TreeView, mais le probleme se trouve au niveau de la base de donnees, laba les information ne sont pas modifier.
    Ma question est alors la suivante comment faire pour pouvoir changer le ID_Parent de la ligne selectioner?
    merci pour l'aide ete voici un bou de mon code
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace treeView_prog
    {    
        public partial class Form1 : Form
        {
            System.Data.SqlClient.SqlConnection con;
            //DataSet ds1;
            System.Data.SqlClient.SqlDataAdapter da;
     
            DataSet ds1;       
            int MaxRows = 0;
            int inc = 0;
     
            public Form1()
            {     
                InitializeComponent();
     
                try
                {
     
     
                    con = new System.Data.SqlClient.SqlConnection();
                    ds1 = new DataSet();
     
                    con.ConnectionString = "Data Source=reporting;Initial Catalog=Reporting;Integrated Security=True";
     
                    con.Open();
     
                    DataTable dtTree = new DataTable();
                    string sql = "SELECT * From Ampel.tim_TreeView";
                    da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
                    da.Fill(dtTree);
                    da.Fill(ds1, "TreeView");
     
                    da.Dispose();
     
                    treeView1.BeginUpdate();      
                    treeView1.Nodes.Clear();    
     
                    CreateTreeView(treeView1.Nodes, 0, dtTree); 
     
                    //treeView1.Nodes[0].Expand(); 
                    treeView1.Select();          
                    treeView1.EndUpdate();       
     
                    con.Close();
                }
                catch (FileNotFoundException fs)
                {
                    tB1.Text = "Error: File not found - " + fs.FileName;
                }
                catch (Exception ex)
                {
                    tB1.Text = ex.ToString();
                }
            }
     
            // create tree
            protected void CreateTreeView(TreeNodeCollection parentNode, int parentID, DataTable mytab)
            {
                foreach (DataRow dta in mytab.Rows)
                {
                    if (Convert.ToInt32(dta["ParentID"]) == parentID)
                    {
                        String key = dta["RecordID"].ToString();
                        String text = dta["Name"].ToString();
                        TreeNodeCollection newParentNode = parentNode.Add(key, text).Nodes;
                        CreateTreeView(newParentNode, Convert.ToInt32(dta["RecordID"]), mytab);
                    }
                }
            }
     
     
            private void treeView_ItemDrag(object sender,
               System.Windows.Forms.ItemDragEventArgs e)
            {
                DoDragDrop(e.Item, DragDropEffects.Move);
            }
     
     
            private void treeView_DragEnter(object sender,
                System.Windows.Forms.DragEventArgs e)
            {
                e.Effect = DragDropEffects.Move;
            }
     
            private void treeView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
            {
                TreeNode NewNode;
     
                if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
                {
                    Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
                    TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);
                    NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
                    if (DestinationNode.TreeView != NewNode.TreeView || DestinationNode.TreeView == NewNode.TreeView)
                    {
                        DestinationNode.Nodes.Add((TreeNode)NewNode.Clone());
                        DestinationNode.Expand();
                        inc = treeView1.SelectedNode.Index;
                        //Remove Original Node
                        NewNode.Remove();
                       Updating_node();
                    }
                }
            }
     
            private void Updating_node()
            {
                System.Data.OleDb.OleDbCommandBuilder cb;
                cb = new System.Data.OleDb.OleDbCommandBuilder();
                System.Data.DataRow dRow2 = ds1.Tables["TreeView"].Rows[inc];
     
                dRow2[0]=treeView1.SelectedNode.Parent.Text.ToString();
     
                da.Update(ds1, "TreeView");
                MessageBox.Show("Data updated");
     
     
     
     
            }
     
     
     
     
            private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                try
                {
                    tB1.Text = "";
                    tB2.Text = "";
                    tB3.Text = "";
     
     
                    tB1.Text = treeView1.SelectedNode.Name.ToString();
                    tB3.Text = treeView1.SelectedNode.Text.ToString();           
                    tB2.Text = treeView1.SelectedNode.Parent.Name.ToString();
     
                }
                catch { }
            }
        }
    }

  2. #2
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Quelques questions sur ton code :
    • ligne 125 tu utilises un data adapter sur lequel tu as lancé un Dispose ligne 44.
    • à quoi servent ces lignes (119 et 120) utilisant un provider odbc alors que précédemment tu utilises un provider sql natif ? D'ailleurs à quoi sert ce command builder ?
    • ligne 123 es-tu sûr que c'est bien la valeur de RecordID que tu affectes ?


    Autrement, un conseil : évite le "SELECT * FROM", remplace l'étoile par le nom des champs.

    Cordialement
    Christophe B.

Discussions similaires

  1. Mise à jour d'un TreeView
    Par Moh1267 dans le forum C#
    Réponses: 0
    Dernier message: 22/07/2014, 22h31
  2. Probleme de mise a jour d'un TreeView.
    Par Ephismen dans le forum Silverlight
    Réponses: 4
    Dernier message: 28/10/2010, 15h57
  3. mise a jour ma TreeView
    Par hajer23 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 17/03/2010, 15h11
  4. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34
  5. Visualisation des mise à jour en réseau
    Par fandor7 dans le forum Paradox
    Réponses: 2
    Dernier message: 06/12/2002, 15h54

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