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