ForeignKeyConstraint示例

来源:互联网 发布:淘宝有哪些男装潮店 编辑:程序博客网 时间:2024/04/25 09:04
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);
            }
        }
    }
}

原创粉丝点击