Я новичок в VB.net и создал простую основную форму окон. Я создал набор данных из двух таблиц, а затем поместил основную таблицу в форму в виде формы продолжения или подробной формы с несколькими текстовыми полями для хранения данных. Дочерняя форма представляет собой сетку данных.
тестовые данные, которые я добавил непосредственно в базу данных, отображаются в форме с правильными родительско-дочерними отношениями. Я также могу вводить новые записи в базу данных, используя только родительскую часть моей формы.
Когда я пытаюсь ввести полную запись с данными как в родительской форме, так и в дочерней сетке данных, я получаю эту ошибку.
Оператор
INSERT
конфликтует с ограничениемFOREIGN KEY
FK_tblComplainant_tblUseOfForce
. Конфликт произошел в базе данных"C:\SQLFILES\CCTS_2.MDF"
, таблица"dbo.tblUseOfForce"
, столбец'UOFID'
. Заявление было прекращено.
tblComplainant
— дочерний элемент, а tblUseOfForce
— главный. Код, используемый для сохранения этой записи, выглядит следующим образом:
Private Sub TblUseOfForceBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesTblUseOfForceBindingNavigatorSaveItem.Click
Me.Validate()
Me.TblUseOfForceBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.UseOfForceDataSet)
End Sub
Я искал возможную причину этой ошибки, но не нашел объяснения. Я заметил, что в более ранних версиях VB.net вам приходилось вводить код для сохранения дочерней записи, но код VB 2010, похоже, не использует тот же синтаксис, поэтому я предположил, что UpdateAll
устраняет необходимость в дополнительном коде.