Wyświetlenie informacji w formie drzewa.

0

Witam,

Chciałem zapytać jak wyświetlić informacje z bazy w formie drzewa.
Chodzi o to, ze w bazie jest system w którym znajduje się kilka urządzeń. I chciałbym aby to wyglądało tak :

  • system
    • urządzenie 1
    • urządzenie 2
    • urządzenie 3

itd.

0

a w czym masz problem?

0

Mam groupBox'a ( systemy ) w którym łącze się z bazą i teraz jak mam w odpowiednim miejscu wyświetlić te informacje aby wyglądały tak jak chce?

0

poważnie pytasz? Przecież to jest śmieszne... Bierzesz coś co ci pozwoli wyświetlić tak jak chcesz i wyświetlasz. Jak nie wiesz jak dany komponent obsłużyć to szukasz, jak nie wiesz co może wyświetlić dane w formie drzewka (podpowiedz: drzewo to tree po angielsku) to szukasz. Jak poszukałeś i masz KONKRETNY problem to dopiero wtedy piszesz na forum

0

Przepraszam , nie denerwuj się tak :)
Mam taki problem :

 
 try
            {
                myConnection.Open();
                SqlCommand myCommand = new SqlCommand("Command String", myConnection);
                myCommand.CommandText = "SELECT id, name FROM system" ;
                

                SqlDataReader Rd = myCommand.ExecuteReader();

                while (Rd.Read())
                {
                    TreeNode node = new TreeNode(Rd["name"].ToString());
                    treeView1.Nodes.Add(node);
                    
                       
                   
                    

                }

Teraz wyświetlają mi się dwa systemy ( system1 = id 1 , system2 = id 3) a w drugiej tabeli mam urządzenia, które muszę podpiąć pod te systemy. Czyli jeśli urządzenie np. komputer ma id = "1" to do "system1" itd. i nie wiem jak to zrobić ...

0

możesz pobrać wszystko za jednym zamachem i odpowiednio posortować, np.:
dla tabel

CREATE TABLE s (id INTEGER, name VARCHAR2(100));
CREATE TABLE u (id INTEGER, sid INTEGER, name VARCHAR2(100));

i danych w nich

INSERT INTO s VALUES(1, 'system 1');
INSERT INTO s VALUES(2, 'system 2');
INSERT INTO s VALUES(3, 'system 3');

INSERT INTO u VALUES(1, 1, 'sys 1 urz 1');
INSERT INTO u VALUES(2, 1, 'sys 1 urz 2');
INSERT INTO u VALUES(3, 2, 'sys 2 urz 1');
INSERT INTO u VALUES(4, 2, 'sys 2 urz 2');
INSERT INTO u VALUES(5, 2, 'sys 2 urz 3');
INSERT INTO u VALUES(6, 3, 'sys 3 urz 1');
INSERT INTO u VALUES(7, 4, 'sys 4 urz 1');

zapytanie

SELECT poziom, name FROM (SELECT 1 poziom, s.id, 0 u_id, s.name FROM s
UNION
SELECT 2, u.sid, u.id, u.name FROM u WHERE u.sid IN (SELECT id FROM s)) ORDER BY id, poziom, u_id

zwróci Ci dane w takiej postaci

Poziom Nazwa
1 system 1
2 sys 1 urz 1
2 sys 1 urz 2
1 system 2
2 sys 2 urz 1
2 sys 2 urz 2
2 sys 2 urz 3
1 system 3
2 sys 3 urz 1

teraz możesz to wsadzić do treeview

TreeNode root;
while (Rd.Read())
{
if (rd["poziom"].ToString() == "1")
root = treeView1.Nodes.Add(Rd["name"].ToString());
else
root.Nodes.Add(Rd["name"].ToString());
}

Musisz jeszcze sprawdzać, czy root nie jest nullem (jeśli warunek jest niespełniony)

1 użytkowników online, w tym zalogowanych: 0, gości: 1