Проблема с указанными данными при добавлении новых строк в каждый - PullRequest
0 голосов
/ 02 мая 2011

У меня есть 2 объекта данных в наборе данных

TransactionReasons и TransactionSubReasons.

У данных TransactionSubReasons есть идентификатор внешнего ключа IDTransactionReason из TransactionReasons.

Когда я добавляю новую строку в TransactionReasons (например, IDTransactionReason = 1), а затем добавляю новую строку в TransactionSubReasons. Поле IDTransactionReason новой добавленной строки равно идентификатору новой добавленной строки (в этом примере 1). Пока все это хорошо.

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

Для обновления я использовал tableAdapterManager.UpdateAll (MYDATSET);

Как я могу решить эту проблему?

Спасибо за внимание !!!

1 Ответ

0 голосов
/ 02 мая 2011

Итак, что же это за проблема / исключение?

EDIT:

Это исключение предполагает, что у вас есть ограничение ADO.NET, связанное с вашим отношением (в дополнение к ограничению БД), но во время обновления строки вашей дочерней таблицы не получают правильный родительский идентификатор. Может быть, tableAdapterManager пытается сначала обновить дочернюю таблицу?

Я предлагаю вам попытаться разделить это на 2 операции. То есть:

  1. Сохраните родительскую таблицу (убедитесь, что в отдельной программе, такой как SQL Management Studio, вы вернули правильные идентификаторы, если они генерируются автоматически

  2. Сохраните дочернюю таблицу (убедитесь, что родительский идентификатор установлен правильно во вновь добавленных строках

Вы можете использовать отладчик для просмотра полей строк после сохранения.

Если вам нужны эти две операции в транзакции, посмотрите здесь

...