有没有人能帮帮我,在bindingsource中添加一条新记录时,如何设置父行?我使用的是类型化数据集,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 Parent为空,为什么?而我已经设置了孩子的父行。谢谢
发布于 2013-01-24 05:26:37
我目前正在解决一个类似的问题。您希望确保父/子表之间有正确的DataRelations。在本例中,这将以外键的形式出现。如果没有外键关系,我认为发生的情况是,首先在父表上进行更新,为父表生成一个ID,然后在子表上的第二次更新尝试使用不再是外键的-1进行更新。如果设置了外键关系,则在更新父表之后,子表的外键应该用正确的ID填充。
https://stackoverflow.com/questions/13319770
复制相似问题