加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 尝试进行分层更新会导致错误“无法插入外键值”

发布时间:2020-12-16 01:38:04 所属栏目:百科 来源:网络整理
导读:我有点像DAO和SQL Server的菜鸟,当我试图将值插入两个有关系的表时,我遇到了问题.表Photos具有gpsId字段,该字段与GPSLocations表的id字段具有外键关系.我想创建一个链接到新GPSLocation的新照片条目,因此代码如下所示: gpsRow = dataset.GPSLocations.AddGP
我有点像DAO和SQL Server的菜鸟,当我试图将值插入两个有关系的表时,我遇到了问题.表Photos具有gpsId字段,该字段与GPSLocations表的id字段具有外键关系.我想创建一个链接到新GPSLocation的新照片条目,因此代码如下所示:

gpsRow = dataset.GPSLocations.AddGPSLocationsRow("0.0N","3.2W");
dataset.Photos.AddPhotosRow(@"c:pathfile.jpg",gpsRow);
tableAdapterManager.UpdateAll(dataset);

但是,这会导致以下错误:

A foreign key value cannot be inserted
because a corresponding primary key
value does not exist. [ Foreign key
constraint name = photoToGps ]

我正在使用SQL Server CE.我的理解是否正确,TableAdapterManager应该处理这种分层更新?我只是将这些表拖到XSD视图上,并依赖于它自动创建包装类.我是否需要更改关系的任何内容(例如,使其成为外键约束)?我注意到在某些情况下gps id是正面的,有时是负面的,这是相关的吗?

编辑:
我还确保将update属性设置为CASCADE,这会导致相同的错误.分层更新设置为true,并且设计器中的两个表之间存在外键约束.

解决方法

它只是数据集的配置.双击Visual Studio的数据集设计器中的表之间的关系,选择“两个关系和外部键约束”选项,然后在“更新规则”字段中选择“级联”选项,必须选中它.

有关该主题的一些信息在MSDN中,您可以在这里查看http://msdn.microsoft.com/en-us/library/bb629317.aspx并转到相关主题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读