我有2个数据表In数据集对象
TransactionReasons和TransactionSubReasons。
TransactionSubReasons数据表具有来自TransactionReasons的外键IDTransactionReason。
当我向TransactionReasons添加新行(例如IDTransactionReason = 1)然后向TransactionSubReasons添加新行时。新添加的行的IDTransactionReason字段等于新添加的行的ID(在此示例中为1)。直到这一切都很好。
但是当我想更新我的数据库时,问题就出现了。
为了更新,我使用了 tableAdapterManager.UpdateAll(MYDATSET);
我该如何解决这个问题?
感谢您的关注!!!
答案 0 :(得分:0)
那么,这个问题/异常是什么?
编辑:
此异常表明您有一个与您的关系相关联的ADO.NET约束(除了数据库约束之外),但在更新期间,您的子表行不会收到正确的父ID。 也许tableAdapterManager首先尝试更新子表?
我建议您尝试将其拆分为2个操作。那就是:
保存父表(确保在SQL Management Studio这样的单独程序中,如果它们是自动生成的,则返回正确的ID
保存子表(确保在新添加的行上正确设置了父ID
您可以使用调试器在保存后查看行字段。
如果您想在交易中执行这两项操作,请查看here