0

有人可以帮我,向绑定源添加新记录时如何设置父行?我正在使用类型化的数据集,C# winforms。

我的代码(添加父子行):

DataRowView drvParent = (DataRowView)bsParent.AddNew()
drvParent.BeginEdit();
drvParent["ID"] = -1;
drvParent["Name"] = "Parent";
drvParent.EndEdit();
DataRowView drvChild = (DataRowView)bsChild.AddNew();
drvChild.BeginEdit();
drvChild["ID"] = -1;
drvChild.Row.SetParentRow(drvParent.Row);
drvChild["Name"] = "Child";
drvChild.EndEdit();

然后当点击保存按钮时:

this.Validate();
bsChild.EndEdit();
bsParent.EndEdit();
ParentTableAdapter pAdapter = new ParentTableAdapter();
pAdapter.Update(myDataSet.Parent);
ChildTableAdapter cAdapter = new ChildTableAdapter();
cAdapter.Update(myDataSet.Child);

孩子中的ID父母为空,为什么?而我已经设置了孩子的父行。谢谢

4

1 回答 1

0

我目前正在解决类似的问题。您要确保在父/子表之间具有正确的 DataRelations。在这种情况下,这将采用外键的形式。如果没有外键关系,我认为发生的事情是您首先对父表进行更新,为父表生成一个 ID,然后对子表的第二次更新尝试使用不再是外键的 -1 进行更新. 如果设置了外键关系,在父表更新后,子表外键应该填充正确的ID。

于 2013-01-23T21:26:36.763 回答