当我尝试更新一行时,出现外键错误。为什么?

时间:2019-02-18 10:45:46

标签: c#

throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();

这是我尝试更新行时遇到的错误。 我使用外键从另一个表中获取类型ID。当我更新它时,我得到了错误。更新名称就可以了。

这是我用来更新的代码。

            hetVoer.Naam = NaamTekst.Text;
        hetVoer.TypeId = Convert.ToInt32(TypeTekst.SelectedValue);
        hetVoer.Prijs = Decimal.Parse(PrijsTekst.Text);

        var item = (Voer)VoerTekst.SelectedItem;
        var delItem = from Voer in db.Voers
                      where Voer.Vid == item.Vid
                      select Voer;


        db.Voers.DeleteOnSubmit(item);
        db.Voers.InsertOnSubmit(hetVoer);
        db.SubmitChanges();

我正在使用C#。

1 个答案:

答案 0 :(得分:1)

尝试在删除后提交更改,您需要先保存数据库,然后再重新添加新条目。

        hetVoer.Naam = NaamTekst.Text;
    hetVoer.TypeId = Convert.ToInt32(TypeTekst.SelectedValue);
    hetVoer.Prijs = Decimal.Parse(PrijsTekst.Text);

    var item = (Voer)VoerTekst.SelectedItem;
    var delItem = from Voer in db.Voers
                  where Voer.Vid == item.Vid
                  select Voer;


    db.Voers.DeleteOnSubmit(item);
    db.SubmitChanges();
    db.Voers.InsertOnSubmit(hetVoer);
    db.SubmitChanges();