MrBlack
@MrBlack

MySQL: Ошибка внешнего ключа?

Пишу клиент на C# для БД на MySQL (связь через mysql.Net connector) столкнулся с такой проблемой.


Дано — справочные таблицы и сводная таблица.

Например, один из справочников Контрагенты
61257.png


добавляем в него нового контрагента
61258.png


код кнопки сохранения

try
            {
                this.Validate();
                this.contragentBindingSource.EndEdit();
                this.tableAdapterManager.UpdateAll(this.contractDataSet);
                this.contractsDataGridView.Update();

                MessageBox.Show("Данные обновлены успешно!", "Договоры", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
catch
            {
                MessageBox.Show("Ошибка обновления данных!", "Договоры", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }



В таблицу mysql добавляется агент нормально)


теперь, мы хотим поправить существующий договор, или отредактировать имеющийся, выбрав, только что добавленного контрагента

на что, при сохранении данных вылетает ошибка
61259.png


Если же перезайти в клиент и выбрать контрагента, то всё работает нормально.
  • Вопрос задан
  • 2733 просмотра
Пригласить эксперта
Ответы на вопрос 2
freeek
@freeek
Не писал клиентов на C#, но, вы уверены, что комит транзакции происходит при добавлении нового контрагента?
Ответ написан
Комментировать
TrueDrago
@TrueDrago
Сделайте вывод запроса на правку договор, посмотрите какие данные хотят вставиться, потом посмотрите есть ли в базе внешний ключ, с которым вы пытаетесь добавить запись.
Ищите несостыковки там, но скорее всего, как уже сказали, коммит транзакции не проходит до выхода из клиента.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы