Ошибка: Cannot add or update a child row: a foreign key constraint fails

имеется ИС Фондовая биржа. Собственно курсовая работа, написана не мной, я полный ноль. Проект старый 2013-2014г., написан коряво. Но суть вот в чем. Заявки открываются нормально и на продажу и на покупку, но когда ставишь галочку "Купить по рыночной цене" чтобы исполнить одну из заявок, получаем ошибку. Гуглил, но решения так и не нашел. Помогите пожалуйста, курсовой на днях уже сдавать. Если нужно будет еще какой-то код прилепить или скрин - скажите. Скрипт

if (Convert.ToDecimal(ask_orderTableAdapter1.GetVolumeByPriceIssue(Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)) >= volumeUpDown.Value)
{
    ask_orderTableAdapter1.UpdateVolume(Convert.ToInt32(volumeUpDown.Value),Convert.ToInt32(ask_orderTableAdapter1.GetIDByPriceIssue(Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)));
    bid_orderTableAdapter1.InsertOrder(Convert.ToInt32(volumeUpDown.Value), Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue, Trader);

    //ЗДЕСЬ ИСКЛЮЧЕНИЕ
    contractTableAdapter1.InsertContract(Convert.ToInt32(volumeUpDown.Value), Convert.ToInt32(bid_orderTableAdapter1.GetLastOrderID()), Convert.ToInt32(ask_orderTableAdapter1.GetIDByPriceIssue(Convert.ToDecimal(bid_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)));
    traderTableAdapter1.UpdateQuery(-(Convert.ToInt32(bid_orderTableAdapter1.GetVolumeByID(Convert.ToInt32(bid_orderTableAdapter1.GetLastOrderID())))*Convert.ToDecimal(bid_orderTableAdapter1.GetPriceByID((int)bid_orderTableAdapter1.GetLastOrderID()))), Trader);

    bid_orderTableAdapter1.CloseOrder(DateTime.Now, Convert.ToInt32(bid_orderTableAdapter1.GetLastOrderID()));
    if(Convert.ToDecimal(ask_orderTableAdapter1.GetVolumeByPriceIssue(Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)) == 0)
    {
        ask_orderTableAdapter1.CloseOrder(DateTime.Now, Convert.ToInt32(ask_orderTableAdapter1.GetIDByPriceIssue(Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)));
    }
}

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Aborigen

Проблема была решена добавлением задержки между запросами:

bid_orderTableAdapter1.InsertOrder(Convert.ToInt32(volumeUpD own.Value), Convert.ToDecimal(ask_orderTableAdapter1.GetPrice(DateTime.N ow, Issue)), Issue, Trader);
await Task.Delay(1000);
contractTableAdapter1.InsertContract(Convert.ToInt32(volumeU pDown.Value), Convert.ToInt32(bid_orderTableAdapter1.GetLastOrderID()), Convert.ToInt32(ask_orderTableAdapter1.GetIDByPriceIssue(Con vert.ToDecimal(bid_orderTableAdapter1.GetPrice(DateTime.Now, Issue)), Issue)));
→ Ссылка