ArcSde开启编辑报错解决方案
ArcEngine 实现开始编辑的功能时,抛出异常“异常来自 HRESULT:0x80040356”
可能的原因有两种:
1.编辑的数据未进行版本注册。
2.未设置编辑模式。
如果数据未进行版本注册,可以通过ArcMap或ArcCatalog进行版本注册。
如果是未设置编辑模式,则可以参考下面的代码进行设置。
//获取当前编辑图层工作空间
IDataset pDataSet = pCurrentLyr.FeatureClass as IDataset;
IWorkspace pWs = pDataSet.Workspace;
//设置编辑模式
if (pWs.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
{
pEngineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeVersioned;
}
else
{
pEngineEditor.EditSessionMode = esriEngineEditSessionMode.esriEngineEditSessionModeNonVersioned;
}
//设置编辑任务
pEngineEditTask = pEngineEditor.GetTaskByUniqueName("ControlToolsEditing_CreateNewFeatureTask");
pEngineEditor.CurrentTask = pEngineEditTask;// 设置编辑任务
pEngineEditor.EnableUndoRedo(true); //是否可以进行撤销、恢复操作
pEngineEditor.StartEditing(pWs, mainMapControl.Map); //开始编辑操作
arcsde版本注册
1.连接sde,右键管理——管理地理数据库——连接,断开其他用户的连接,否则被其它锁定无法修改
2.需要进行编辑操作的数据集右键——管理——注册版本,且注册版本的时候需要勾选注册到基表,
3.菜单栏右键开启编辑器,编辑器——选项——版本管理——勾选允许撤销和恢复