توب برنامم یه جدول به نام Teacher دارم که دارای یک فیلد به نام Teacher_ID است و یه جدول به نام Term Teacher که دارای فیلدی به نام TermTeacher_ID و Teacher_ID_FK (کلید خارجی)است.
وقتی که میخوام تو برنامم حذف یک استاد رو انجام بدم با اینکه از یک استاد (مثلا با ID =2 ) توی جدول TermTeacher استفاده شده وقتی که میخوام اون استاد رو از جدول Teacher پاک کنم اونو پاک میکنه با اینکه طبق روابطی که داره نباید اونو پاک کنه.میشه بگید کجای کارم اشتباهه؟
کد برنامم اینه
تو برنامم
privatevoid btnDelete_Click(object sender, EventArgs e)
{
this.dgv.DataSource = ds.Tables["Teacher"];
DataRowView drv = (DataRowView)this.BindingContext[ds.Tables["Teacher"]].Current;
DialogResult dr = MessageBox.Show("™آیا مایل به حذف هستید؟", "",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2);
if (dr == DialogResult.Yes)
{
objteach.deletTeacher(drv);
}
}
کد delet teacher تو لایه businesslayer
publicvoid deletTeacher(DataRowView drv)
{
objteach.deletTeacher(drv);
}
کد deletTeacher تو لایه DataLayer
publicvoid deletTeacher(DataRowView drv)
{
int rowid = (int)drv.Row["Teacher_ID"];
drv.Delete();
SqlCommand cmd = newSqlCommand("delete from Teacher where Teacher_ID=@Teacher_ID", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Teacher_ID", Teacher_ID);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}