更新主/子行

本文关键字:子行 更新 | 更新日期: 2023-09-27 18:14:28

我有表CasesDegreesCases.CID - CDegrees.CID的关系。CIDCases的主键,具有自动递增功能。

两个表都以一个形式使用,并且假设用户可以同时向两个表添加新记录,然后在一个GUI操作中保存整个主/子数据。

因此,在我创建FK的数据集中,我设置了"关系和外键约束",以确保在case表中更新新记录期间,检索到的IDENTITY值将导致子记录从-1更新到检索到的CID值。

当我更新Cases适配器时,它会导致检索新的IDENTITY值,并且CDegrees子记录中的级联更新也可以正常工作。但是CDegrees的更新导致Insert script with [CID]=-1(原值)。我将CDegrees的插入参数@CID更改为"建议"版本,但同样发生(见SQL Profiler)。

其实我的任务要复杂得多,我只是简化了任务,把问题定位了。


更清楚地描述。在更新之前[Cases]和[CDegrees]都有一条[CID]=-1的新记录在[Cases]更新后[Cases]和[CDegrees]都有新的CID标识值,只是[CDegrees]。[CID]"当前"值为-1,"建议"为检索身份。但是当我调用[CDegrees]的数据集更新时,它发送插入命令到SQL与[CID]=-1,无论我指定@CID参数源作为[CID]的建议值。

更新主/子行

真是奇怪又有趣。似乎是由于日历控件对详细信息的控制,导致但阻止了详细信息数据根据CID字段的主标识值进行级联更新。我只是把日期字段绑定控件从MonthCalendar更改为DateTimePicker,它工作了。