使用tableadaptermanager.updateall在父子级中删除级联

时间:2012-10-08 19:31:43

标签: ado.net master-detail bindingsource tableadapter

我有两个datagridview,一个显示父记录,另一个显示子记录。

我在数据集中定义了级联更新和删除规则以及层次更新设置为true的关系和外键约束。

我想删除父datagridview上的记录并删除它的子记录。 在我的代码下面:

private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
    DialogResult res = MessageBox.Show("Sicuro", "Attenzione", MessageBoxButtons.YesNo);
    if (res == System.Windows.Forms.DialogResult.Yes)
    {

        try
        {
            //parent table
            pianoDiInterventoBindingSource.RemoveCurrent();

            //child table
            pianoInterventoServiziBindingSource.EndEdit();

            pianoDiInterventoBindingSource.EndEdit();
            tableAdapterManager.UpdateAll(this.archivioDataSet);
        }
        catch
        {
        }
        finally
        {
            this.pianoDiInterventoTableAdapter.Fill(this.archivioDataSet.PianoDiIntervento);
            this.pianoInterventoServiziTableAdapter.Fill(this.archivioDataSet.PianoInterventoServizi);
        }
    }
}

我能删除父记录但子记录没有,所以我之后有constraintexception error

为什么会这样?

0 个答案:

没有答案