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();
}
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
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