arcgis版本为9.3的,当对shp数据进行过要素删除操作后,就可能出现标题中的问题;
通过利用arcgis进行验证发现有这三个方法可以修复要素类;
1、在arccatalog中对这个shp数据进行重新导出一遍,
2、或者是利用gp工具进行几何修复一下;
3、在arcmap中对这个有问题的shp数据打开编辑,然后关闭编辑后,就是正常的了;
在arcEngineg开发过程中要解决这个问题,也是基于上面三个方法来实现;
前面两种方法太麻烦了,需要有新的或临时的要素类产生,所以建议使用第三种方法;
在对要素类进行删除操作时,需要打开一个编辑区间:
IWorkspaceEdit ipWksEdt = (ipFCls as IDataset).Workspace as IWorkspaceEdit;
if(ipWksEdt.IsBeginEdited())
{
ipWksEdt.StopEditOperation();
ipWksEdt.StopEditing(true);
}
ipWksEdt.StartEditing(false);
ipWksEdt.StartEditOperation();
//这里进行要素类删除的操作
IFeatureCursor ipFeatureCursor = ipFCls.UpdateFeature(null,false);
IFeature ipFeature = ipFeatureCursor.NextFeature();
while(ipFeature!=null)
{
ipFeatureCursor.DeleteFeature();
ipFeature = ipFeatureCursor.NextFeature();
}
//释放游标
Marshal.ReleaseComObject(ipFeatureCursor);
ipWksEdt.StopEditOperation();
ipWksEdt.StopEditing(true);