1. 程式人生 > >ForeignKeyConstraint 外來鍵約束的使用及作用的學習!

ForeignKeyConstraint 外來鍵約束的使用及作用的學習!

1    da.SelectCommand.CommandText="select au_id,au_fname,au_lname from authors";
2    da.Fill(ds,"Author");
3    da.SelectCommand.CommandText="select au_id,title_id from titleauthor";
4    da.Fill(ds,"TitleAuthor");
5    da.SelectCommand.CommandText="select title_id,title from titles";
6    da.Fill(ds,"Titles
");
7 //
8    ds.Tables["Titles"].Columns["title_id"].Unique=true;
9    ds.Tables["Titles"].Columns["title_id"].AllowDBNull=false;
10    ds.Tables["Titles"].PrimaryKey=new DataColumn[]{ds.Tables["Titles"].Columns["title_id"]};
11 //
12    ds.Tables["Author"].Columns["au_id"].Unique=true;
13    ds.Tables["Author
"].Columns["au_id"].AllowDBNull=false;
14    ds.Tables["Author"].PrimaryKey=new DataColumn[]{ds.Tables["Author"].Columns["au_id"]};
15 //
16    ds.Tables["TitleAuthor"].PrimaryKey=new DataColumn[]{ds.Tables["TitleAuthor"].Columns["au_id"],
17     ds.Tables["TitleAuthor"].Columns["title_id"]};
18 //定義約束19
   ForeignKeyConstraint fk1=new ForeignKeyConstraint("authorstitleauthor",ds.Tables["Author"].Columns["au_id"],
20     ds.Tables["TitleAuthor"].Columns["au_id"]);
21    ds.Tables["TitleAuthor"].Constraints.Add(fk1);
22    ForeignKeyConstraint fk2=new ForeignKeyConstraint(
23 "titlestitleauthor",ds.Tables["Titles"].Columns["title_id"],
24     ds.Tables["TitleAuthor"].Columns["title_id"]);
25    ds.Tables["TitleAuthor"].Constraints.Add(fk2);
26 this.dataGrid1.DataSource=ds;
27 this.dataGrid1.DataMember="TitleAuthor";
28 29 這樣設定外來鍵之後,在DataGrid上編輯TitleAuthor中的記錄時如果編輯的記錄不在Title和Author中時將後無法更新和新增.