我有点像DAO和SQL Server的菜鸟,当我试图将值插入两个有关系的表时,我遇到了问题.表Photos具有gpsId字段,该字段与GPSLocations表的id字段具有外键关系.我想创建一个链接到新GPSLocation的新照片条目,因此代码如下所示:
gpsRow = dataset.GPSLocations.AddGPSLocationsRow("0.0N", "3.2W"); dataset.Photos.AddPhotosRow(@"c:\path\file.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并转到相关主题.
查看更多关于c# – 尝试进行分层更新会导致错误“无法插入外键值”的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did69270