ADO Net Database ASP.Net Tutorial

A single DataSet can contain one or many DataTable objects. 
You can define parent/child relationships between the DataTable objects contained in a DataSet.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Web.Configuration" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    void Page_Load()
    {
        if (!Page.IsPostBack)
            BuildTree();
    }
    void BuildTree()
    {
        string connectionString = WebConfigurationManager.ConnectionStrings["Products"].ConnectionString;
        SqlConnection con = new SqlConnection(connectionString);
        SqlDataAdapter dadCategories = new SqlDataAdapter("SELECT Id,Name FROM ProductCategories", con);
        SqlDataAdapter dadProducts = new SqlDataAdapter("SELECT Title,CategoryId FROM Products", con);
        DataSet dstProducts = new DataSet();
        using (con)
        {
            con.Open();
            dadCategories.Fill(dstProducts, "Categories");
            dadProducts.Fill(dstProducts, "Products");
        }
        dstProducts.Relations.Add("Children", dstProducts.Tables["Categories"].Columns["Id"], dstProducts.Tables["Products"].Columns["CategoryId"]);
        foreach (DataRow categoryRow in dstProducts.Tables["Categories"].Rows)
        {
            string name = (string)categoryRow["Name"];
            TreeNode catNode = new TreeNode(name);
            TreeView1.Nodes.Add(catNode);
            DataRow[] productRows = categoryRow.GetChildRows("Children");
            foreach (DataRow productRow in productRows)
            {
                string title = (string)productRow["Title"];
                TreeNode productNode = new TreeNode(title);
                catNode.ChildNodes.Add(productNode);
            }
        }
    }



    Show DataSet


    
    

            id="TreeView1"
        Runat="server" />
    

    


File: Web.config

  
             connectionString="Data Source=.\SQLEXPRESS;
         AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" />