首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向bindingsource添加新记录时设置父行(dataset - parent-child)

向bindingsource添加新记录时设置父行(dataset - parent-child)
EN

Stack Overflow用户
提问于 2012-11-10 14:04:28
回答 1查看 1.5K关注 0票数 0

有没有人能帮帮我,在bindingsource中添加一条新记录时,如何设置父行?我使用的是类型化数据集,C# winforms。

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

代码语言:javascript
复制
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();

然后单击保存按钮:

代码语言:javascript
复制
this.Validate();
bsChild.EndEdit();
bsParent.EndEdit();
ParentTableAdapter pAdapter = new ParentTableAdapter();
pAdapter.Update(myDataSet.Parent);
ChildTableAdapter cAdapter = new ChildTableAdapter();
cAdapter.Update(myDataSet.Child);

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

EN

回答 1

Stack Overflow用户

发布于 2013-01-24 05:26:37

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13319770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档