2.10. Creating a Data Relation

Problem

You need to create a parent/child relation between two tables.

Solution

Use the System.Data.DataRelation class.

The solution creates a DataSet with two tables. A data relation is added to the DataSet establishing a parent/child relationship between the tables. Rows are added to both parent and child tables, including a row that violates the constraint. The results are output to the console.

The C# code in Program.cs in the project CreateDataRelation is shown in Example 2-10.

Example 2-10. File: Program.cs forCreateDataRelation solution

using System; using System.Data; namespace CreateDataRelation { class Program { static void Main(string[] args) { DataSet ds = new DataSet(); // Create the parent table and add to the DataSet DataTable dt1 = new DataTable("Table-1"); dt1.Columns.Add("Id1", typeof(int)); dt1.Columns.Add("Id2", typeof(int)); dt1.Columns.Add("Field1", typeof(string)).MaxLength = 50; ds.Tables.Add(dt1); // Create the child table and add to the DataSet DataTable dt2 = new DataTable("Table-2"); dt2.Columns.Add("Id3", typeof(int)); dt2.Columns.Add("Id1", typeof(int)); dt2.Columns.Add("Id2", typeof(int)); dt2.Columns.Add("Field2", typeof(string)).MaxLength = 50; ds.Tables.Add(dt2); // Create the data relation and add to the DataSet DataRelation dr = new DataRelation("DataRelation", new DataColumn[] { dt1.Columns["Id1"], dt1.Columns["Id2"] }, new DataColumn[] { dt2.Columns["Id1"], dt2.Columns["Id2"] }, true); ds.Relations.Add(dr); try { AddParentRecord(dt1, ...

Get ADO.NET 3.5 Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.