i need to view a tree from a single table in c#. | Sololearn: Learn to code for FREE!
Nouvelle formation ! Tous les codeurs devraient apprendre l'IA générative !
Essayez une leçon gratuite
0

i need to view a tree from a single table in c#.

the table contain four fields which are group_id,group_name,is_sub_group,main_group_id. I need to display the main group as root node and the groups coming under the main group as child node

23rd Oct 2017, 9:08 AM
Nihal
7 Réponses
+ 3
And this question is regarding the SQL to retrieve the data or how to populate the data into the TreeView? if you have the code in progress you can link it here, at least part of it, so others can help you with it :)
23rd Oct 2017, 9:31 AM
Ipang
+ 3
Can you provide details of the table fields? like what type of data they contain, and your current code for adding new node? My idea would be to assign the group_id as node key (identifier) which later can be used to reference to the node, when we need to add a child node, we refer to the parent node by using main_group_id, of course we only do that if is_sub_group evaluates to true, otherwise we'll just add new node at top hierarchy.
23rd Oct 2017, 9:59 AM
Ipang
+ 2
Alright mate, good to know that, btw, you don't need to include connection string details here, it's your private information, I know it's local, but still. I see you use PostgreSQL here, I've never experienced it, in your opinion, how is it? compared with MySQL for example, is there anything special in PostgreSQL? would be nice to hear from a fellow coder though. And one more thing, why did you used two datasets for this? is it not possible with just one? will you kindly share the reason for that?
23rd Oct 2017, 1:07 PM
Ipang
+ 1
this was just a test to check the treeview and i am also new to the postgresql. its same as mysql and the advantage is it's free
23rd Oct 2017, 1:27 PM
Nihal
+ 1
Okay mate, good sharing, best of luck on that project :D
23rd Oct 2017, 1:31 PM
Ipang
0
i need to populate the treeview.
23rd Oct 2017, 9:49 AM
Nihal
0
thanks i got it. String strConn = @"Server = 192.168.27.27; Port = 5432; User Id = postgres; Password = postgres; Database = ERP_wrk"; NpgsqlConnection conn = new NpgsqlConnection(strConn); NpgsqlDataAdapter da = new NpgsqlDataAdapter("Select * from item_group where is_sub_group=false order by sl_no", conn); DataSet ds = new DataSet(); da.Fill(ds, "item_group"); foreach (DataRow dr in ds.Tables["item_group"].Rows) { String tn=dr["group_id"].ToString(); String name = dr["group_name"].ToString(); //foreach (DataRow drChild in dr.GetChildRows("item_group")) //{ // tn.Nodes.Add(drChild["group_id"].ToString()); //} treeView1.Nodes.Add(tn,name); } //select * from item_group where is_sub_group; NpgsqlDataAdapter da2 = new NpgsqlDataAdapter("Select * from item_group where is_sub_group=true order by sl_no", conn); DataSet ds2 = new DataSet(); da2.Fill(ds2, "item_group"); foreach (DataRow dr2 in ds2.Tables["item_group"].Rows) { String pid = dr2["main_group_id"].ToString(); String tn = dr2["group_id"].ToString(); String name = dr2["group_name"].ToString(); var result = treeView1.Nodes.Find(pid, true).FirstOrDefault(); if (result != null) { result.Nodes.Add(tn, name); }
23rd Oct 2017, 11:32 AM
Nihal