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