TableAdapterManager и связанные таблицы в MS Access

Я пишу свое первое приложение базы данных на С#, и мне нужно использовать базу данных MS Access, у меня есть две таблицы Invoice и Order, таблица заказов является дочерней таблицей. Счет-фактура является родительской таблицей, в ней есть ключевой столбец «InvoiceNumber», который является автоматическим столбцом и имеет отношение «один ко многим» со столбцом таблицы заказов «InvoiceNumber». Проблема, с которой я сталкиваюсь, заключается в том, что я получил исключение в строке

tableAdapterManager.UpdateAll(database1DataSet);

когда я пытаюсь добавить новую строку и нажимаю сохранить,

"You cannot add or change a record because a related record is required in table 'Invoice'."

Я пытался искать, но я не могу найти никакой помощи для базы данных доступа ms, большинство из них относятся к базе данных SQL. Я также нашел одно решение для редактирования отношения в конструкторе наборов данных, чтобы выбрать параметр «Ограничения как отношения, так и внешнего ключа», но оно также не сработало для меня.

Спасибо


person Ahmed    schedule 20.05.2011    source источник
comment
похоже, вы добавляете строку, которая не имеет заполненного значения столбца внешнего ключа. Добавьте код, который добавляет новую строку в таблицу   -  person zabulus    schedule 20.05.2011
comment
@zabulus, поскольку отношение является родительским дочерним, тогда, когда я нажимаю кнопку сохранения, tableAdapterManager обновляет родительскую таблицу, поэтому он получает эту строку, а затем отправляет обновление в дочернюю строку, поэтому запись должна присутствовать. Я думал использовать tableAdapter.update() отдельно сначала от родителя, а затем от дочернего, но это тоже не сработало.   -  person Ahmed    schedule 20.05.2011


Ответы (1)


Убедитесь, что ваши параметры OleDbParameters установлены правильно и в правильном порядке, соответствующем столбцам в таблицах базы данных. Если вы используете автоматическое создание кода Visual Studio для источников данных при добавлении базы данных, а затем перетащите таблицу в форму, извлеките файл <database name>DataSet.Designer.cs. Он научит вас всему, что вам нужно знать.

person ElectronicsMan    schedule 11.08.2012