【问题标题】:Problem with releated datatable when adding new rows to each datatable向每个数据表添加新行时重复数据表的问题
【发布时间】:2011-08-17 01:41:43
【问题描述】:

我在数据集对象中有 2 个数据表

TransactionReasons 和 TransactionSubReasons。

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

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

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

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

我该如何解决这个问题?

感谢您的关注!!!

【问题讨论】:

    标签: c# .net datatable dataset tableadapter


    【解决方案1】:

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

    编辑:

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

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

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

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

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

    如果您想在事务中执行这两个操作,请查看here

    【讨论】:

    • INSERT 语句与 FOREIGN KEY 约束“FK_TransactionSubReasons_TransactionReasons”冲突。冲突发生在数据库“HouseBudget”、表“dbo.TransactionReasons”、列“IDTransactionReason”中。声明已终止。
    猜你喜欢
    • 2013-10-09
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    相关资源
    最近更新 更多