如何在ArcGIS地理数据库中编辑行的objectID?

时间:2014-06-27 19:51:03

标签: database insert gis arcgis esri-arc-engine

我正在尝试向ArcGIS地理数据库添加行,但我不希望为此行生成自动objectid。我想插入一个特定的objectid。我收到错误:字段不可编辑。

我的代码如下:

feature = fclass.CreateFeature();
feature.setValue((int)_fields[i].targetIndex, tripValue);

现在,在第一次迭代中,_fields [i] .targetIndex = 0,因为我想插入特定的objectid。 但是第一次迭代给了我一个错误,而其余的都很好。

关于如何以某种方式解决自动objectid的任何想法?

2 个答案:

答案 0 :(得分:2)

简答:

你没有。

答案很长:

使用ObjectID字段作为唯一键(我假设你在这里做的事情)通常被认为是一个非常糟糕的想法,因为该字段不像您想象的那样静态 - 对数据集的各种操作将重新开始 - 分配他们。

this question的答案之一表明,如果您从其他地方复制数据,复制/粘贴数据可能会完整地传输目标,但是否则您应该创建另一个字段以用作唯一键并离开只有objectid。

(顺便说一下,这种地理数据库问题会在GIS.SE得到更明智的答案。

答案 1 :(得分:0)

ObjectID是ArcGIS的内部系统字段,我不能这样做。如help文档中所述,

  

ArcGIS使用ObjectID执行滚动,显示等操作   选择集,并对要素执行识别操作。

相反,我建议创建一个GlobalID,它也是由ArcGIS生成的系统,但要确保每个标识符都是唯一的(有关详细信息,请参阅ArcGIS field data type)。 GlobalID还支持地理数据库复制。要创建GlobalID,只需在ArcCatalog中右键单击要素类,然后选择管理>添加全局ID ...

我也是第二个Juffy,这个问题会更好地在GIS.SE提供。