2.1. Retrieving Hierarchical Data into a DataSet
Problem
You want to fill a DataSet with
parent and related child data, even if the DataSet
already has a schema that includes the relationship.
Solution
There are several techniques you can use to load parent and child
data into a DataSet.
The sample code contains three event handlers:
Form.LoadSets up the sample by creating a
DataSetwith table schemas for both the Orders table and the Order Details table from Northwind and aDataRelationobject relating these two tables. The default view of the parent table, Orders, is bound to a data grid on the form.- Load DataSet
Button.Click Starts by clearing the data from the
DataSetand refreshing the data grid.DataAdapterobjects are created for both the parent and the child table. The Orders and Order Details are then filled using data adapters in the sequence specified and enforcing constraints during the load as specified by the user.
The C# code is shown in Example 2-1.
Example 2-1. File: HierarchicalDataSetForm.cs
// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; private DataSet ds; // . . . private void HierarchicalDataSetForm_Load(object sender, System.EventArgs e) { ds = new DataSet( ); // Get the schema for the Orders table. DataTable parentTable = new DataTable("Orders"); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Orders", ConfigurationSettings.AppSettings["Sql_ConnectString"]); ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access