我正在尝试使用表适配器管理器中的方法updateAll
。当我尝试更新作为子项存储在另一个表中的任何记录时,updateAll
会抛出一个异常,告诉我“由于表格无法删除或更改”竞争“包括相关记录”。
是不是这种方法应该处理所有的表关系?
以下是我要保存的代码:
Public Sub saveAll(ByVal dataSet As SudokuDataSet)
Try
Dim tbAdapterManager As New SudokuDataSetTableAdapters.TableAdapterManager
tbAdapterManager.CompetitorTableAdapter = competitorTableAdapter
tbAdapterManager.PuzzleTableAdapter = puzzleTableAdapter
tbAdapterManager.CompetitionTableAdapter = competitionTableAdapter
tbAdapterManager.UpdateAll(dataSet)
Catch ex As Exception
MessageBox.Show(ex.Message, "Saving Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
答案 0 :(得分:0)
由于表格包含,因此无法删除或更改记录 相关记录。 (错误3200)
您尝试执行该操作 会违反相关表的参照完整性规则。 例如,如果您尝试删除或更改记录,则会发生此错误 在有一对多关系的“一”表中 “很多”表中的相关记录。
如果要删除或更改记录,请先删除相关内容 来自“很多”表的记录。
来自here。
答案 1 :(得分:0)
我发现该方法运行正常。问题出在数据库中,我必须配置表之间的关系并将它们设置为级联。
即。在关系中启用“级联更新相关字段”和“级联删除相关字段”