我是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
消除了对额外代码的需求
答案 0 :(得分:0)
错误有效地告诉你:
1)在父记录(tblUseOfForce)之前保存子记录(tblComplaint)
或
2)在父记录解决之前,子记录对父记录(UOfID)的引用没有更新。
我怀疑2号是最可能的原因。
希望这可以帮助您找出导致此问题的特定代码。
答案 1 :(得分:0)