Creating a Foreign Key Constraint

Creating a Foreign Key Constraint

You can use constraints to enforce restrictions on the data in a DataTable , in order to maintain the integrity of the data. A ForeignKeyConstraint can restrict, as well as propagate, changes to related columns.

Following example shows how to create a Foreign Key Constraint

using System;

using System.Data;


namespace CreateForeignKeyConstraint


    class Program


        static void Main(string[] args)


            DataSet ds = new DataSet();


            // Create the parent table and add to the DataSet

            DataTable objCustomer = new DataTable("Customer");

            objCustomer.Columns.Add("CustomerID", typeof(int));

            objCustomer.Columns.Add("CustomerName", typeof(string));



            // Create the child table and add to the DataSet

            DataTable objOrder = new DataTable("Order");

            objOrder.Columns.Add("OrderID", typeof(int));

            objOrder.Columns.Add("CustomerID", typeof(int));

            objOrder.Columns.Add("Product", typeof(string));



            // Create the foreign key constraint and add to the child table

            ForeignKeyConstraint fk = new ForeignKeyConstraint(

                "ForeignKey", objCustomer.Columns["CustomerID"], objOrder.Columns["CustomerID"]);





                // Add records to Customer table

                objCustomer.Rows.Add(new object[] { 1, "Mukesh Kumar" });

                objCustomer.Rows.Add(new object[] { 2, "Sunil kumar" });


                //Add records to Order Table

                objOrder.Rows.Add(new object[] { 10, 1, "Digital Camara" });

                objOrder.Rows.Add(new object[] { 11, 2, "Mobile" });

                objOrder.Rows.Add(new object[] { 12, 1, "Bluetooth Watch" });



            catch (Exception ex)


                Console.WriteLine("Error: {0}\n", ex.Message);



            Console.WriteLine("Press any key to continue.");