2011-05-15 75 views
1

我有兩個表,一個表是父母,另一個是孩子。
首先,在表單加載中,我想向Parent添加一行,之後在子表中使用父ID。
當然所有這些都是暫時的,直到用戶最終確認並保存。
但通過我的代碼,我收到此錯誤:孩子和父表錯誤

ForeignKeyConstraint FK_Table385_ParentTable_Table380_ChildTable requires the child key values (3) to exist in the parent table.

我知道這是什麼錯誤意味着,我可以更新父表後行添加到我的孩子表。但我不能那樣做。因爲所有這些作品都是暫時的,直到用戶確認操作。
那我該怎麼辦?

+0

您使用的是哪種數據訪問技術? L2SQL,實體框架,數據集和數據適配器,還是舊的普通ADO.NET? – Ben 2011-05-15 07:08:41

+0

數據集和綁定源 – user422481 2011-05-15 07:22:11

回答

0

如果您正確地配置了Typed數據集,則會自動處理。

我不記得所有的細節,但它需要使用AutoIncrement對關係中的PK和Cascading更新。

您應該看到(調試器)新記錄獲取臨時負值。

所以如果(3)是關鍵的價值,有些東西是不正確的。

+0

是的,我認爲你是對的。我檢查了父表和錯誤是在那。它不是自動增量。非常感謝。 – user422481 2011-05-15 08:12:04

0

使用數據集:在您的應用程序中離線插入數據,並在用戶確認時提交到數據庫。

+0

事實上,我使用鍵入的日期集。這兩個表都是BindingSource形式。 – user422481 2011-05-15 07:06:42

+0

您是否首先提交了主數據集並且提交了依賴數據集? – Marco 2011-05-15 07:09:39

+0

是的,首先我添加行到父綁定源,然後使用ParentTableBindingSource.EndEdit()。之後ChildTable.NewRow() – user422481 2011-05-15 07:24:19