数据编辑做过很多次,没怎么出现问题,今天出现了问题,浪费了大半天,记录一下。

问题:修改Featrue的属性,修改后停止编辑,但是没有提示是否保存修改

原因:在编辑数据的时候没有加StartEditOperation方法。

解决办法:在修改数据的时候加上StartEditOperation和StopEditOperation方法

代码如下:

1、打开工作空间和开始编辑  

 ''' <summary>
''' 开始编辑VB
''' </summary>
''' <remarks></remarks>
Public Function StartEdit() As Boolean
If IsNothing(pWorkspaceEdit) Then
Dim pWorkspaceFactory As IWorkspaceFactory = New ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactory
Dim dataset As IDataset = pPointFeatureLayer.FeatureClass
Dim workspace As IWorkspace = pWorkspaceFactory.OpenFromFile(dataset.Workspace.PathName, )
pWorkspaceEdit = workspace
End If
pWorkspaceEdit.StartEditing(True)
End Function
        //开始编辑C#
if(pWorkspaceEdit==null)
{
IWorkspaceFactory pWorkspaceFactory =new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactory();
IDataset dataset =pFeatureLayer.FeatureClass as IDataset;
IWorkspace workspace = pWorkspaceFactory.OpenFromFile(dataset.Workspace.PathName, );
pWorkspaceEdit = workspace as IWorkspaceEdit;
pWorkspaceEdit.StartEditing(true);
}

2、开始操作和停止操作

  Public Function StartOperation() As Boolean
pWorkspaceEdit.StartEditOperation()
Return True
End Function
Public Function StopOperation() As Boolean
pWorkspaceEdit.StopEditOperation()
Return True
End Function

3、保存编辑

    ''' <summary>
''' 保存编辑
''' </summary>
''' <remarks></remarks>
Public Function StopEdit() As Boolean
'pWorkspaceEdit.IsBeingEdited()
Dim bSave As Boolean If Not HasEdits() Then
bSave = False
Else
Dim r As System.Windows.Forms.DialogResult
r = MessageDialog.Show("是否保存编辑?", "提示", Windows.Forms.MessageBoxButtons.YesNoCancel)
Select Case r
Case Windows.Forms.DialogResult.Yes
bSave = True
Case Windows.Forms.DialogResult.No
bSave = False
Case Windows.Forms.DialogResult.Cancel
Return True
End Select
End If
pWorkspaceEdit.StopEditing(bSave)
Return True
End Function Private Function HasEdits() As Boolean
Dim bHasEdits As Boolean
pWorkspaceEdit.HasEdits(bHasEdits)
Return bHasEdits
End Function

4、修改数据的地方

  m_editor.StartOperation()
Dim pFieldIndex As Integer = pTagFeature.Fields.FindField(e.ChangedItem.PropertyDescriptor.Name)
pTagFeature.Value(pFieldIndex) = e.ChangedItem.Value
pTagFeature.Store()
m_editor.StopOperation()

ArcEngine 数据编辑(IWorkspaceFactory)的更多相关文章

  1. ArcEngine数据编辑--选择要素

    转自原文ArcEngine数据编辑--选择要素 好久没有写博文了,这段时间相对空闲一点,把AE数据编辑实现总结下. 要编辑要素,首先要选中要素,按shift键进行多选,按esc键清空选择. 个人了解的 ...

  2. 成功解决Developer Express和Janus WinForms Controls中控件的冲突

    最新在做一套GIS系统的框架,其中用到了Janus WinForms Controls和Developer Express这两个插件. 我用DE的xtraTabbedMdiManager组件来管理我的 ...

  3. ArcEngine 栅格数据

    1.ArcEngine中的栅格数据组织方式(详细信息见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009t0000 ...

  4. ArcEngine中打开各种数据源(WorkSpace)的连接

    (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...

  5. ArcEngine编辑保存错误:Unable to create logfile system tables

    通过ArcEngine对多个SDE中多个图层进行批量编辑处理,其中有部分图层在结束编辑的时候出现错误提示(部分图层可以,只有两个数据较多的图层保存失败). 错误信息:Unable to create ...

  6. ArcEngine中打开各种数据源(WorkSpace)的连接(转)

    ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开 ...

  7. ArcEngine中打开各种数据源(WorkSpace)的连接http://www.cnblogs.com/feilong3540717/archive/2011/08/07/2129906.html

    ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影 ...

  8. [转] ArcEngine中打开各种数据源(WorkSpace)的连接

    原文 ArcEngine中打开各种数据源(WorkSpace)的连接(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源. ...

  9. ArcEngine:栅格分级渲染

    ArcEngine对矢量数据进行风格化实在是得心应手,同样的对于栅格图像也能进行风格化!以前没接触过,今天正好需要,做出了栅格图像的渲染!下面实现的思路: 1.定义渲染的一系列接口 2.判断图像是否建 ...

随机推荐

  1. Hammersley-Clifford定理证明

    Proof of Hammersley-Clifford TheoremProof of Hammersley-Clifford Theorem依赖知识定义1定义2证明过程反向证明(吉布斯分布=> ...

  2. [转]来自后端的逆袭 blazor简介 全栈的福音

    背景 什么是SPA 什么是MPA MPA (Multi-page Application) 多页面应用指的就是最传统的 HTML 网页设计,早期的网站都是这样的设计,所之称为「网页设计」.使用 MPA ...

  3. centos7的gnome假死

    centos7的gnome假死,干掉gnome相关进程,如nautilus,kworker

  4. [转]Win10下安装Linux子系统

    工作以来一直DotNet系偏C/S, 接触Web开发的时间也不长, 现在主要偏向Web全栈方向, 一直对Linux系统心生向往, 夜深了娃睡了, 打开老旧的笔记本来折腾一下. 准备工作 控制面板 &g ...

  5. [转]java常用正则表达式

    只能输入数字:"^[0-9]*$".  只能输入n位的数字:"^\d{n}$".  只能输入至少n位的数字:"^\d{n,}$".  只能输 ...

  6. H3C IPv6地址解析

  7. win2d 通过 CanvasActiveLayer 画出透明度和裁剪

    本文告诉大家如果在 UWP 的 win2d 通过 CanvasActiveLayer 创建一层,在这里画出的图片有透明度或者裁剪 在 win2d 如果需要对某个元素裁剪,可以使用很多方法,本文只是告诉 ...

  8. vue权限控制菜单显示

    对于不同角色显示不同的菜单 思路1: 本地放一份完整的菜单数据,通过后台返回角色的菜单列表两者对比,筛选需要显示的菜单数据绑定,这里有个问题就是路由vue实例初始化就生成了,加载的全部,人为输入地址是 ...

  9. JAVA JVM记录

    串行处理器: 适用情况:数据量比较小(100M左右):单处理器下并且对响应时间无要求的应用. 缺点:只能用于小型应用 并行处理器: 适用情况:“对吞吐量有高要求”,多CPU.对应用响应时间无要求的中. ...

  10. C# 获取进程退出代码

    我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 static void Main(string[] args) ...