ArcEngine 数据编辑(IWorkspaceFactory)
数据编辑做过很多次,没怎么出现问题,今天出现了问题,浪费了大半天,记录一下。
问题:修改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)的更多相关文章
- ArcEngine数据编辑--选择要素
转自原文ArcEngine数据编辑--选择要素 好久没有写博文了,这段时间相对空闲一点,把AE数据编辑实现总结下. 要编辑要素,首先要选中要素,按shift键进行多选,按esc键清空选择. 个人了解的 ...
- 成功解决Developer Express和Janus WinForms Controls中控件的冲突
最新在做一套GIS系统的框架,其中用到了Janus WinForms Controls和Developer Express这两个插件. 我用DE的xtraTabbedMdiManager组件来管理我的 ...
- ArcEngine 栅格数据
1.ArcEngine中的栅格数据组织方式(详细信息见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009t0000 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...
- ArcEngine编辑保存错误:Unable to create logfile system tables
通过ArcEngine对多个SDE中多个图层进行批量编辑处理,其中有部分图层在结束编辑的时候出现错误提示(部分图层可以,只有两个数据较多的图层保存失败). 错误信息:Unable to create ...
- ArcEngine中打开各种数据源(WorkSpace)的连接(转)
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接http://www.cnblogs.com/feilong3540717/archive/2011/08/07/2129906.html
ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影 ...
- [转] ArcEngine中打开各种数据源(WorkSpace)的连接
原文 ArcEngine中打开各种数据源(WorkSpace)的连接(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源. ...
- ArcEngine:栅格分级渲染
ArcEngine对矢量数据进行风格化实在是得心应手,同样的对于栅格图像也能进行风格化!以前没接触过,今天正好需要,做出了栅格图像的渲染!下面实现的思路: 1.定义渲染的一系列接口 2.判断图像是否建 ...
随机推荐
- H3C 总线型以太网拓扑扩展
- Python __call__详解
可以调用的对象 关于 __call__ 方法,不得不先提到一个概念,就是可调用对象(callable),我们平时自定义的函数.内置函数和类都属于可调用对象,但凡是可以把一对括号()应用到某个对象身上都 ...
- tf.train.string_input_producer()
处理从文件中读数据 官方说明 简单使用 示例中读取的是csv文件,如果要读tfrecord的文件,需要换成 tf.TFRecordReader import tensorflow as tf file ...
- linux 创建你的 /proc 文件
一旦你有一个定义好的 read_proc 函数, 你应当连接它到 /proc 层次中的一个入口项. 使用一个 creat_proc_read_entry 调用: struct proc_dir_ent ...
- 【t056】智力问答(multiset做法)
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 新年联欢会上,G.Sha负责组织智力问答节目.G.Sha建立了一个很大很大的超级题库,并衡量了每道题的 ...
- js 对象的深拷贝
function deepCopy(obj) { var result = Array.isArray(obj) ? [] : {}; for (var key in obj) { if (obj.h ...
- Microsoft Ignite The Tour Beijing 记录: Learn Connect Explore
坦率的说,这是我第一次以讲师的身份参加微软的Ignite大会.同时我也很开心能作为微软社区MVP来参加这个活动.而我的演讲主题也和我的社区有关——Unity.C#以及跨平台开发. 这篇用来记录MSIg ...
- 【15.93%】【codeforces 672D】Robin Hood
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- P3157 动态逆序对 CDQ分治
动态逆序对 CDQ分治 传送门:https://www.luogu.org/problemnew/show/P3157 题意: 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对 ...
- C. 【UNR #3】配对树
题解: 首先可以贪心 于是问题可以等价成一条边被算当且仅当子树中个数为奇数个 题解的做法比较简单 考虑每条边,加入其子树内的点 然后为了保证区间长度为偶数 分成f0,0 f0,1 f1,0 f1,1即 ...