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));

            ds.Tables.Add(objCustomer);

 

            // 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));

            ds.Tables.Add(objOrder);

 

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

            ForeignKeyConstraint fk = new ForeignKeyConstraint(

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

            objOrder.Constraints.Add(fk);

 

            try

            {

                // 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.");

            Console.ReadKey();

        }

 

    }

}