だから私は親テーブルを持つMS Access DBを持っています:
ID Autonumber
Description Text
子テーブル:
ID AutoNumber
Description Text
ParentID Number
私は関係を作成しました:
Parent column: ID
Child column: ParentID
Enforce Ref Integrity, Cascade Update and Cascade Delete
これを Visual 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 は null です。
私がしようとすると:
rowChild.SetParentRow(rowParent);
もらいます
You cannot add or change a record because a related record is required in table 'Parent'.
私は何が欠けていますか?