da.SelectCommand.CommandText="select au_id,au_fname,au_lname from authors"; da.Fill(ds,"Author"); da.SelectCommand.CommandText="select au_id,title_id from titleauthor"; da.Fill(ds,"TitleAuthor"); da.SelectCommand.CommandText="select title_id,title from titles"; da.Fill(ds,"Titles"); // ds.Tables["Titles"].Columns["title_id"].Unique=true; ds.Tables["Titles"].Columns["title_id"].AllowDBNull=false; ds.Tables["Titles"].PrimaryKey=new DataColumn[]{ds.Tables["Titles"].Columns["title_id"]}; // ds.Tables["Author"].Columns["au_id"].Unique=true; ds.Tables["Author"].Columns["au_id"].AllowDBNull=false; ds.Tables["Author"].PrimaryKey=new DataColumn[]{ds.Tables["Author"].Columns["au_id"]}; // ds.Tables["TitleAuthor"].PrimaryKey=new DataColumn[]{ds.Tables["TitleAuthor"].Columns["au_id"], ds.Tables["TitleAuthor"].Columns["title_id"]}; //定义约束 ForeignKeyConstraint fk1=new ForeignKeyConstraint("authorstitleauthor",ds.Tables["Author"].Columns["au_id"], ds.Tables["TitleAuthor"].Columns["au_id"]); ds.Tables["TitleAuthor"].Constraints.Add(fk1); ForeignKeyConstraint fk2=new ForeignKeyConstraint( "titlestitleauthor",ds.Tables["Titles"].Columns["title_id"], ds.Tables["TitleAuthor"].Columns["title_id"]); ds.Tables["TitleAuthor"].Constraints.Add(fk2); this.dataGrid1.DataSource=ds; this.dataGrid1.DataMember="TitleAuthor";
这样设定外键之后,在DataGrid上编辑TitleAuthor中的记录时如果编辑的记录不在Title和Author中时将后无法更新和新增.
时间: 2024-10-15 07:10:00