向每个数据表添加新行时,相关数据表出现问题

时间:2011-05-02 15:25:10

标签: c# .net datatable dataset tableadapter

我有2个数据表In数据集对象

TransactionReasons和TransactionSubReasons。

TransactionSubReasons数据表具有来自TransactionReasons的外键IDTransactionReason。

当我向TransactionReasons添加新行(例如IDTransactionReason = 1)然后向TransactionSubReasons添加新行时。新添加的行的IDTransactionReason字段等于新添加的行的ID(在此示例中为1)。直到这一切都很好。

但是当我想更新我的数据库时,问题就出现了。

为了更新,我使用了 tableAdapterManager.UpdateAll(MYDATSET);

我该如何解决这个问题?

感谢您的关注!!!

1 个答案:

答案 0 :(得分:0)

那么,这个问题/异常是什么?

编辑:

此异常表明您有一个与您的关系相关联的ADO.NET约束(除了数据库约束之外),但在更新期间,您的子表行不会收到正确的父ID。 也许tableAdapterManager首先尝试更新子表?

我建议您尝试将其拆分为2个操作。那就是:

  1. 保存父表(确保在SQL Management Studio这样的单独程序中,如果它们是自动生成的,则返回正确的ID

  2. 保存子表(确保在新添加的行上正确设置了父ID

  3. 您可以使用调试器在保存后查看行字段。

    如果您想在交易中执行这两项操作,请查看here