所以,我有一個MS Access數據庫與父表:爲什麼我的孩子記錄與保存到Access的數據集中的父記錄不相關?
ID Autonumber
Description Text
子表:
ID AutoNumber
Description Text
ParentID Number
我已經創建了關係:
Parent column: ID
Child column: ParentID
Enforce Ref Integrity, Cascade Update and Cascade Delete
我已經投進視覺此Studio 2010,該向導已創建數據集和適配器。 我修改了xsd以將關係設置爲Both Relation and Foreign Key Constraint
和Update/Delete
規則爲Cascade
。
所以我嘗試添加父記錄與相關的子記錄:
var taParent = new TestDataSetTableAdapters.ParentTableAdapter();
var taChild = new TestDataSetTableAdapters.ChildTableAdapter();
var ds = new TestDataSet();
taParent.Fill(ds.Parent);
taChild.Fill(ds.Child);
var rowParent = ds.Parent.NewParentRow();
rowParent.Description = DateTime.Now.ToString();
ds.Parent.AddParentRow(rowParent);
var rowChild = ds.Child.NewChildRow();
rowChild.ChildText = DateTime.Now.ToString();
ds.Child.AddChildRow(rowChild);
taParent.Update(ds);
var parentId = rowParent.ID; // <-- This is still -1
// taParent.Fill(ds.Parent); // <-- Doing this hoping to reload the parent record gives: Cannot clear table Parent because ForeignKeyConstraint ParentChild enforces constraints and there are child rows in Child.
taChild.Update(ds.Child);
但孩子PARENTID記錄爲空。
如果我嘗試:
rowChild.SetParentRow(rowParent);
我會得到
You cannot add or change a record because a related record is required in table 'Parent'.
我缺少什麼?
謝謝,問題更新與我的嘗試。父ID永遠不會傳播回數據集。重新加載失敗。 –