[转]ForeignKeyConstraint示例 1)创建一个WinForm应用程序 2)在窗体上绘制三个DataGridView控件和一个按钮控件 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ForeignKeyConstraintSample { public partial class Form1 : Form { public Form1() { InitializeComponent(); } DataSet ds = new DataSet("ds"); DataTable dt大学 = new DataTable("大学"); DataTable dt学生 = new DataTable("学生"); DataTable dt成绩 = new DataTable("成绩"); private void Form1_Load(object sender, EventArgs e) { dataGridView1.DataSource = dt大学; dataGridView2.DataSource = dt学生; dataGridView3.DataSource = dt成绩; ds.Tables.Add(dt大学); ds.Tables.Add(dt学生); ds.Tables.Add(dt成绩); dt大学.Columns.Add("学校编号", typeof(string)); dt大学.Columns.Add("校名", typeof(string)); dt大学.PrimaryKey = new DataColumn[] { dt大学.Columns["学校编号"] }; dt学生.Columns.Add("学校编号", typeof(string)); dt学生.Columns.Add("学号", typeof(string)); dt学生.Columns.Add("姓名", typeof(string)); dt学生.PrimaryKey = new DataColumn[]{ dt学生.Columns["学校编号"],dt学生.Columns["学号"]}; dt成绩.Columns.Add("学校编号", typeof(string)); dt成绩.Columns.Add("学号", typeof(string)); dt成绩.Columns.Add("课程号", typeof(string)); dt成绩.Columns.Add("分数", typeof(int)); dt成绩.PrimaryKey = new DataColumn[]{ dt成绩.Columns["学校编号"],dt成绩.Columns["学号"], dt成绩.Columns["课程号"] }; ForeignKeyConstraint fk1 = new ForeignKeyConstraint( dt大学.Columns["学校编号"], dt学生.Columns["学校编号"]); ForeignKeyConstraint fk2 = new ForeignKeyConstraint( new DataColumn[]{dt学生.Columns["学校编号"], dt学生.Columns["学号"]}, new DataColumn[]{dt成绩.Columns["学校编号"], dt成绩.Columns["学号"]}); fk1.DeleteRule = Rule.None; fk1.UpdateRule = Rule.None; dt学生.Constraints.Add(fk1); dt成绩.Constraints.Add(fk2); } private void button1_Click(object sender, EventArgs e) { try { ds.AcceptChanges(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }