Mega Code Archive

 
Categories / C# Tutorial / GUI Windows Forms
 

Hierarchical Tree View for displaying database table

using System.Data; using System.Data.SqlClient; using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms;   public class HierarchicalTreeView : System.Windows.Forms.Form   {     private System.Windows.Forms.TreeView tree;     public HierarchicalTreeView()     {       this.tree = new System.Windows.Forms.TreeView();       this.SuspendLayout();       //        this.tree.ImageIndex = -1;       this.tree.Location = new System.Drawing.Point(8, 8);       this.tree.Name = "tree";       this.tree.SelectedImageIndex = -1;       this.tree.Size = new System.Drawing.Size(276, 248);       this.tree.TabIndex = 0;       this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);       this.ClientSize = new System.Drawing.Size(292, 266);       this.Controls.AddRange(new System.Windows.Forms.Control[] {this.tree});       this.Text = "Hierarchical TreeView";       this.Load += new System.EventHandler(this.HierarchicalTreeView_Load);       this.ResumeLayout(false);     }     string connectionString = "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI";     string categorySQL = "SELECT * FROM Categories";     string productSQL = "SELECT * FROM Products";     private void HierarchicalTreeView_Load(object sender, System.EventArgs e)     {       SqlConnection con = new SqlConnection(connectionString);       SqlCommand com = new SqlCommand(categorySQL, con);       SqlDataAdapter adapter = new SqlDataAdapter(com);       DataSet ds = new DataSet();            con.Open();       adapter.Fill(ds, "Categories");       adapter.SelectCommand.CommandText = productSQL;       adapter.Fill(ds, "Products");       con.Close();       DataColumn parentCol = ds.Tables["Categories"].Columns["CategoryID"];       DataColumn childCol = ds.Tables["Products"].Columns["CategoryID"];       DataRelation relation = new DataRelation("Cat_Prod", parentCol, childCol);       ds.Relations.Add(relation);       foreach (DataRow parent in ds.Tables["Categories"].Rows)       {         TreeNode nodeParent = tree.Nodes.Add(parent["CategoryName"].ToString());         foreach (DataRow child in parent.GetChildRows(relation))         {           nodeParent.Nodes.Add(child["ProductName"].ToString());         }           }     }     public static void Main()     {       Application.Run(new HierarchicalTreeView());     }   }