Code/C#
[C#] DataSet, Primary Key, Foreign Key Constraint
Hide Code
2008. 12. 22. 18:32
using System;
using System.Data;
using System.Windows.Forms;
namespace ConstraintSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeMyComponent();
}
private void InitializeMyComponent()
{
// Shop DataSet
DataSet shopDataSet = new DataSet("Shop");
// Person DataTable
DataTable personDataTable = new DataTable("Person");
shopDataSet.Tables.Add(personDataTable);
DataColumn nameDataColumn = new DataColumn("Name", typeof(string));
personDataTable.Columns.Add(nameDataColumn);
// Primary Key
DataColumn[] personPrimaryKey = { nameDataColumn };
personDataTable.PrimaryKey = personPrimaryKey;
personDataTable.Columns.Add("Age", typeof(int));
personDataTable.Columns.Add("Address", typeof(string));
personDataTable.Rows.Add("Paul", 21, "Seoul");
personDataTable.Rows.Add("John", 31, "Tokyo");
personDataTable.Rows.Add("Lora", 41, "Paris");
// Visit DataTable
DataTable visitDataTable = new DataTable("Visit");
shopDataSet.Tables.Add(visitDataTable);
DataColumn numberDataColumn = new DataColumn("Number", typeof(int));
visitDataTable.Columns.Add(numberDataColumn);
/// Primary Key
DataColumn[] visitPrimaryKey = { numberDataColumn };
visitDataTable.PrimaryKey = visitPrimaryKey;
visitDataTable.Columns.Add("Person", typeof(string));
visitDataTable.Columns.Add("Time", typeof(DateTime));
visitDataTable.Columns.Add("Duration", typeof(TimeSpan));
visitDataTable.Rows.Add(1, "Paul", DateTime.Now, TimeSpan.FromMinutes(5));
visitDataTable.Rows.Add(2, "John", DateTime.Now, TimeSpan.FromMinutes(15));
visitDataTable.Rows.Add(3, "Paul", DateTime.Now, TimeSpan.FromMinutes(25));
visitDataTable.Rows.Add(4, "Paul", DateTime.Now, TimeSpan.FromMinutes(35));
visitDataTable.Rows.Add(5, "John", DateTime.Now, TimeSpan.FromMinutes(45));
visitDataTable.Rows.Add(6, "Lora", DateTime.Now, TimeSpan.FromMinutes(55));
visitDataTable.Rows.Add(7, "Lora", DateTime.Now, TimeSpan.FromMinutes(10));
// Foreign Key Constraint
ForeignKeyConstraint myForeignKeyConstraint =
new ForeignKeyConstraint(personDataTable.Columns[0], visitDataTable.Columns[1]);
visitDataTable.Constraints.Add(myForeignKeyConstraint);
// Binding
this.dataGridView1.DataSource = shopDataSet;
this.dataGridView1.DataMember = "Person";
this.dataGridView2.DataSource = shopDataSet;
this.dataGridView2.DataMember = "Visit";
}
}
}
using System.Data;
using System.Windows.Forms;
namespace ConstraintSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeMyComponent();
}
private void InitializeMyComponent()
{
// Shop DataSet
DataSet shopDataSet = new DataSet("Shop");
// Person DataTable
DataTable personDataTable = new DataTable("Person");
shopDataSet.Tables.Add(personDataTable);
DataColumn nameDataColumn = new DataColumn("Name", typeof(string));
personDataTable.Columns.Add(nameDataColumn);
// Primary Key
DataColumn[] personPrimaryKey = { nameDataColumn };
personDataTable.PrimaryKey = personPrimaryKey;
personDataTable.Columns.Add("Age", typeof(int));
personDataTable.Columns.Add("Address", typeof(string));
personDataTable.Rows.Add("Paul", 21, "Seoul");
personDataTable.Rows.Add("John", 31, "Tokyo");
personDataTable.Rows.Add("Lora", 41, "Paris");
// Visit DataTable
DataTable visitDataTable = new DataTable("Visit");
shopDataSet.Tables.Add(visitDataTable);
DataColumn numberDataColumn = new DataColumn("Number", typeof(int));
visitDataTable.Columns.Add(numberDataColumn);
/// Primary Key
DataColumn[] visitPrimaryKey = { numberDataColumn };
visitDataTable.PrimaryKey = visitPrimaryKey;
visitDataTable.Columns.Add("Person", typeof(string));
visitDataTable.Columns.Add("Time", typeof(DateTime));
visitDataTable.Columns.Add("Duration", typeof(TimeSpan));
visitDataTable.Rows.Add(1, "Paul", DateTime.Now, TimeSpan.FromMinutes(5));
visitDataTable.Rows.Add(2, "John", DateTime.Now, TimeSpan.FromMinutes(15));
visitDataTable.Rows.Add(3, "Paul", DateTime.Now, TimeSpan.FromMinutes(25));
visitDataTable.Rows.Add(4, "Paul", DateTime.Now, TimeSpan.FromMinutes(35));
visitDataTable.Rows.Add(5, "John", DateTime.Now, TimeSpan.FromMinutes(45));
visitDataTable.Rows.Add(6, "Lora", DateTime.Now, TimeSpan.FromMinutes(55));
visitDataTable.Rows.Add(7, "Lora", DateTime.Now, TimeSpan.FromMinutes(10));
// Foreign Key Constraint
ForeignKeyConstraint myForeignKeyConstraint =
new ForeignKeyConstraint(personDataTable.Columns[0], visitDataTable.Columns[1]);
visitDataTable.Constraints.Add(myForeignKeyConstraint);
// Binding
this.dataGridView1.DataSource = shopDataSet;
this.dataGridView1.DataMember = "Person";
this.dataGridView2.DataSource = shopDataSet;
this.dataGridView2.DataMember = "Visit";
}
}
}