GetData Method

This topic covers the GetData method for DataSet Binding with TreeView. This method fetches data from the DataSet class with relational data tables.

C#
Copy Code
public DataSet GetData()
{
    // create hierarchical DataSet
    DataRowCollection drc;
    DataColumnCollection dcc;
    DataSet ds = new DataSet("Hierarchical DataSet");

    ds.Tables.Add("Products");
    dcc = ds.Tables["Products"].Columns;
    dcc.Add("ID", typeof(string));
    dcc.Add("Name", typeof(string));
    dcc.Add("Value", typeof(decimal));

    drc = ds.Tables["Products"].Rows;
    drc.Add(new object[] { "P1", "Widget", 19.95 });
    drc.Add(new object[] { "P2", "Gadget", 22.75 });
    drc.Add(new object[] { "P3", "Sprocket", 33.10 });

    ds.Tables.Add("Customers");
    dcc = ds.Tables["Customers"].Columns;
    dcc.Add("ID", typeof(string));
    dcc.Add("Name", typeof(string));
    dcc.Add("Address", typeof(string));

    drc = ds.Tables["Customers"].Rows;
    drc.Add(new object[] { "C1", "John", "122 Penny Lane" });
    drc.Add(new object[] { "C2", "Paul", "666 Abbey Road" });
    drc.Add(new object[] { "C3", "George", "222 Chatham Road" });
    drc.Add(new object[] { "C4", "Ringo", "345 Oxford St." });

    ds.Tables.Add("Orders");
    dcc = ds.Tables["Orders"].Columns;
    dcc.Add("ID", typeof(string));
    dcc.Add("CustomerID", typeof(string));
    dcc.Add("Prty", typeof(int));
    dcc.Add("Date", typeof(DateTime));

    drc = ds.Tables["Orders"].Rows;
    drc.Add(new object[] { "O1", "C1", 1, new DateTime(2001, 12, 1) });
    drc.Add(new object[] { "O2", "C2", 2, new DateTime(2002, 1, 22) });
    drc.Add(new object[] { "O3", "C3", 3, new DateTime(2002, 1, 20) });
    drc.Add(new object[] { "O4", "C4", 1, new DateTime(2002, 1, 14) });
    drc.Add(new object[] { "O5", "C1", 3, new DateTime(2002, 1, 16) });

    ds.Tables.Add("OrderDetail");
    dcc = ds.Tables["OrderDetail"].Columns;
    dcc.Add("ID", typeof(string));
    dcc.Add("OrderID", typeof(string));
    dcc.Add("ProductID", typeof(string));
    dcc.Add("Qty", typeof(int));

    drc = ds.Tables["OrderDetail"].Rows;
    drc.Add(new object[] { "D1", "O1", "P1", 1 });
    drc.Add(new object[] { "D2", "O1", "P2", 12 });
    drc.Add(new object[] { "D3", "O1", "P3", 1 });
    drc.Add(new object[] { "D4", "O2", "P1", 1 });
    drc.Add(new object[] { "D5", "O2", "P2", 8 });
    drc.Add(new object[] { "D6", "O2", "P3", 1 });
    drc.Add(new object[] { "D7", "O3", "P1", 1 });
    drc.Add(new object[] { "D8", "O4", "P1", 1 });
    drc.Add(new object[] { "D9", "O4", "P2", 10 });
    drc.Add(new object[] { "D10", "O5", "P1", 1 });
    drc.Add(new object[] { "D11", "O5", "P2", 16 });
    drc.Add(new object[] { "D12", "O5", "P3", 1 });

    // Set relations between tables
    ds.Relations.Add("CustomerOrders", ds.Tables["Customers"].Columns["ID"], ds.Tables["Orders"].Columns["CustomerID"]);
    ds.Relations.Add("Order Details", ds.Tables["Orders"].Columns["ID"], ds.Tables["OrderDetail"].Columns["OrderID"]);
    ds.Relations.Add("Product Details", ds.Tables["Products"].Columns["ID"], ds.Tables["OrderDetail"].Columns["ProductID"]);

    return ds;
}