Laden...

treeview aus db 3-stufig füllen

Erstellt von handycommander vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.351 Views
handycommander Themenstarter:in
415 Beiträge seit 2006
vor 16 Jahren
treeview aus db 3-stufig füllen

hi,

ich würd gern eine treeview 3-stufig aus einer db abbilden.
dazu hab ich folgenden code geschrieben...
er funktioniert auch... aber nur 2 stufig! die 3. stufe behandelt er wie die 2. stufe... also fügt sie einfach als 2. stufe ein!
woran liegt der fehler im code?

danke schonmal

mfg tobi

private void createNodes()
        {
            //Erstellt aus der DB die Nodes für die TreeView
            cmdManufacturer = new SqlCeCommand("SELECT ID1, Name FROM ...", connection);
            drManufacturer = cmdManufacturer.ExecuteReader(CommandBehavior.SequentialAccess);

            while (drManufacturer.Read())
            {
                cmdModel = new SqlCeCommand("SELECT ID2, Name FROM ... WHERE ID1 = " + drManufacturer.GetValue(0), connection);
                drModel = cmdModel.ExecuteReader(CommandBehavior.SequentialAccess);

                TreeNode tNode = treeview.Nodes.Add(drManufacturer.GetString(1));

                while (drModel.Read())
                {
                    cmdManual = new SqlCeCommand("SELECT ID3, Name FROM ... WHERE ID2 = " + drModel.GetValue(0), connection);
                    drManual = cmdManual.ExecuteReader(CommandBehavior.SequentialAccess);

                    tNode.Nodes.Add(drModel.GetString(1));

                    while (drManual.Read())
                    {
                        tNode.Nodes.Add(drManual.GetString(1));
                    }
                }
            }

            treeview.ExpandAll();
        }
476 Beiträge seit 2004
vor 16 Jahren

hallo handycommander,

in deiner 2. Ebene fehlt folgender Codeschnipsel, denn du in der 1. Ebene angegeben hast:


TreeNode tNode = treeview.Nodes.Add(drManufacturer.GetString(1));

Also ist tNode immer noch ein Knoten von Ebene 1, weshalb die Knoten auf Ebene 2 eingefügt werden.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

handycommander Themenstarter:in
415 Beiträge seit 2006
vor 16 Jahren

also so?

private void createNodes()
        {
            //Erstellt aus der DB die Nodes für die TreeView
            cmdManufacturer = new SqlCeCommand("SELECT ID1, Name FROM ...", connection);
            drManufacturer = cmdManufacturer.ExecuteReader(CommandBehavior.SequentialAccess);

            while (drManufacturer.Read())
            {
                cmdModel = new SqlCeCommand("SELECT ID2, Name FROM ... WHERE ID1 = " + drManufacturer.GetValue(0), connection);
                drModel = cmdModel.ExecuteReader(CommandBehavior.SequentialAccess);

                TreeNode tNode = treeview.Nodes.Add(drManufacturer.GetString(1));

                while (drModel.Read())
                {
                    cmdManual = new SqlCeCommand("SELECT ID3, Name FROM ... WHERE ID2 = " + drModel.GetValue(0), connection);
                    drManual = cmdManual.ExecuteReader(CommandBehavior.SequentialAccess);

                    TreeNode tNode = treeview.Nodes.Add(drManufacturer.GetString(1));
                    tNode.Nodes.Add(drModel.GetString(1));

                    while (drManual.Read())
                    {
                        tNode.Nodes.Add(drManual.GetString(1));
                    }
                }
            }

            treeview.ExpandAll();
        }

mfg tobi