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.