locked
bind data to winforms Treeview Control RRS feed

  • Question

  • Hello

    Please advise ....

    This is my first time working with treeview control in winforms. Can someone please help me how to bind data to winforms tree view from 3 tables. I need the out put as follows

    I need the output as.

    Parent Node                                             CourseName
               Child Node                                                 Semester1
                        SubChild Node                                           Students
    Parent Node                                             CourseName
                Child Node                                                Semester1   
                SubChild Node                                                    Students
                SubChild Node                                          Semester2

                                                                                             Students

    Here is my table structure.... These are my tables...

    Table:tab_course_master
    Fields:

    course_id
    course_name
    campus_id
    duration
    No_of_semesters


    Table:tab_course_semester
    Fields:

    c_sem_id
    course_id
    sem_id


    Table:tab_semester_master
    Fields:

    sem_id(primary Key)
    sem_no


    Parent:Course Name
    Child:semno
    Subchild:student name

    Please advise.....Thanks in advance for the help.... Please help....
    Friday, February 27, 2009 5:45 PM

Answers

  • It could be something like this:

            private void AddCourses(TreeView tvw, DataTable courses, DataTable semester, DataTable student)  
            {  
                foreach (DataRow dr in courses.Rows)  
                {  
                    TreeNode nd = tvw.Nodes.Add((string)dr["Course_Name"]);  
                    AddSemesters(tvw, nd, (int)dr["Course_Id"], semester, student);  
                }  
            }  
     
            private void AddSemesters(TreeView tvw, TreeNode parent, int course, DataTable semester, DataTable student)  
            {  
                foreach (DataRow dr in semester.Select("Course_Id = " + course))  
                {  
                    TreeNode nd = parent.Nodes.Add((string)dr["sem_id"]);  
                    AddStudents(tvw, nd, (int)dr["c_sem_Id"], student);  
                }  
            }  
     
            private void AddStudents(TreeView tvw, TreeNode parent, int semester, DataTable student)  
            {  
                foreach (DataRow dr in student.Select("Sem_Id = " + semester))  
                {  
                    TreeNode nd = parent.Nodes.Add((string)dr["student"]);  
                }  
            }  
     

    Ewald - Please remember to mark the replies as answers if they help.
    • Proposed as answer by Kira Qian Tuesday, March 3, 2009 6:56 AM
    • Marked as answer by Kira Qian Friday, March 6, 2009 6:06 AM
    Friday, February 27, 2009 8:21 PM

All replies

  • It could be something like this:

            private void AddCourses(TreeView tvw, DataTable courses, DataTable semester, DataTable student)  
            {  
                foreach (DataRow dr in courses.Rows)  
                {  
                    TreeNode nd = tvw.Nodes.Add((string)dr["Course_Name"]);  
                    AddSemesters(tvw, nd, (int)dr["Course_Id"], semester, student);  
                }  
            }  
     
            private void AddSemesters(TreeView tvw, TreeNode parent, int course, DataTable semester, DataTable student)  
            {  
                foreach (DataRow dr in semester.Select("Course_Id = " + course))  
                {  
                    TreeNode nd = parent.Nodes.Add((string)dr["sem_id"]);  
                    AddStudents(tvw, nd, (int)dr["c_sem_Id"], student);  
                }  
            }  
     
            private void AddStudents(TreeView tvw, TreeNode parent, int semester, DataTable student)  
            {  
                foreach (DataRow dr in student.Select("Sem_Id = " + semester))  
                {  
                    TreeNode nd = parent.Nodes.Add((string)dr["student"]);  
                }  
            }  
     

    Ewald - Please remember to mark the replies as answers if they help.
    • Proposed as answer by Kira Qian Tuesday, March 3, 2009 6:56 AM
    • Marked as answer by Kira Qian Friday, March 6, 2009 6:06 AM
    Friday, February 27, 2009 8:21 PM
  • Hello Sir

     

    ThankYou Soooooooooooooooo  much. It worked out very well.

    Sorry for late reply.

    Wednesday, March 18, 2009 8:21 PM