我的表格Cases
和Degrees
的关系为Cases.CID
- CDegrees.CID
。 CID
是具有AutoIncrement的Cases
的主键。
两个表都以一种形式使用,并假设用户可以同时向两个表添加新记录,而不是将整个主/子数据保存在一个GUI操作中。
所以在我创建FK的数据集中,我设置了#34;关系和外键约束"为了确保在更新Cases表中的新记录期间,检索到的IDENTITY值将导致子记录从-1更新为检索到的CID
值。
当我更新Cases
适配器时,它会导致检索新的IDENTITY值,并且CDegrees
子记录中的级联更新也可以正常工作。但是CDegrees
的更新导致插入脚本的[CID] = - 1(原始值)。我将@CID
的插入参数CDegrees
更改为"建议"版本但发生了相同的情况(见于SQL事件探查器)。
实际上我的任务更复杂,我只是简化了本地化问题的任务。
更清楚地描述。 在更新之前 [Cases]和[CDegrees]都有一个新的记录[CID] = - 1 [案例]更新后[案例]和[CDegrees]都有新的CID身份值,只有[CDegrees]。[CID]" Current"值为-1和"建议"是检索身份。 但是当我调用[CDegrees]的数据集更新时,无论我是否将@CID参数源指定为[CID]的建议值,它都会向[CID] = - 1发送插入命令到SQL。
答案 0 :(得分:0)
这很奇怪也很有趣。似乎对细节的日历控制以某种方式导致但是根据CID
字段的主标识值阻止细节数据级联更新。
我只是将日期字段绑定控件从MonthCalendar
更改为DateTimePicker
并且它有效。