//由于测试数据不完善,featureClass在此要只设null值,真实功能要设实际的值
IFeatureClass featureClass = null; //获取某个字段的索引,后面取字段值用到
int xxxFieldIdx = featureClass.FindField("xxx"); IFeatureCursor featureCursor = featureClass.Search(null, true);
IFeature feature = null; //获取到IWorkspaceEdit接口,IWorkspaceEdit是编辑必须的接口
IWorkspaceEdit workspaceEdit = (featureClass as IDataset).Workspace as IWorkspaceEdit; //开始编辑的两个重要方法,StartEditing第一个参数是是否允许Undo,Redo(重做,撤销),如果是后台数据处理功能一般关系不大
workspaceEdit.StartEditing(true);
//构成一个EditOperation有StartEditOperation和StopEditOperation方法,Undo,Redo是针对一个EditOperation的
workspaceEdit.StartEditOperation(); //这里加try的原因是,如果编辑时出错,需要调用IWorkspaceEdit的一些方法来回滚修改内容
//而且编辑出错几率比一般功能大
try
{
List<int> lstOid = new List<int>(); while ((feature = featureCursor.NextFeature()) != null)
{
//修改属性字段的字段值
feature.Value[xxxFieldIdx] = "sss"; IPoint point = new PointClass();
point.PutCoords(, );
//修改几何字段的字段值
//因为几何字段只有一个,所以不需要字段索引
feature.Shape = point; //保存要素的修改
feature.Store(); //保存oid是为了之后的删除要素功能
lstOid.Add(feature.OID);
} System.Runtime.InteropServices.Marshal.FinalReleaseComObject(featureCursor); //删除
//由于不能在遍历要素时删除要素,因此其中一种删除要素的方法:是在遍历时收集要删除要素的oid,遍历完后再通过oid进行删除
foreach (int oid in lstOid)
{
//先通过oid获取要素,然后调用要素的Delete方法删除
IFeature featureDelete = featureClass.GetFeature(oid);
featureDelete.Delete();
} //保存编辑
//之前的feature.Store()和featureDelete.Delete()都是临时保存,下面两句才是真实的保存
workspaceEdit.StopEditOperation();
//参数1是是否保存,false就是不保存,也就是恢复到修改前的状态
workspaceEdit.StopEditing(true);
}
catch (Exception ex)
{
//编辑出错需要以下两句,大意是数据回滚
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(false); //此处不记录异常,把异常抛出让系统统一处理
throw new Exception("", ex);
}

Arcgis Engine(ae)接口详解(3):featureClass的feature编辑和删除的更多相关文章

  1. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

  2. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  3. socket接口详解

    1. socket概述 socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在Unix一切 ...

  4. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  7. [转载]MII/MDIO接口详解

    原文地址:MII/MDIO接口详解作者:心田麦浪 本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在 ...

  8. map接口详解

    1.Map接口详解(1)映射(map)是一个存储键.键值对的对象,给定一个键,可以查询得到它的值,键和值都可以是对象(2)键必须是唯一的,值可以重复(Map接口映射唯一的键到值)(3)有些映射可以接收 ...

  9. ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); 只要没有写锁,读锁可 ...

随机推荐

  1. PTA 10-排序5 PAT Judge (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/677 5-15 PAT Judge   (25分) The ranklist of PA ...

  2. 【Luogu】P1199三国游戏(博弈论)

    题目链接 来看一波有理有据的分析 三牧小明的那篇 代码 #include<cstdio> #include<cctype> #include<algorithm> ...

  3. 还是Tomcat,关于类加载器的趣味实验

    一.前言 类加载器,其实是很复杂一个东西,想等到我完全什么都弄明白了再写出来,估计不太现实...现在只能是知道多少写多少吧. 首先,我提一个问题:在我们自己的servlet中(比如ssm中,contr ...

  4. 洛谷P3393 逃离僵尸岛

    题目描述 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵尸控制了,如果贸然闯入 ...

  5. HDU 5001 Walk (暴力、概率dp)

    Walk Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  6. linux磁盘I/O的性能评估

    linux磁盘I/O的性能评估 参考自:自学it网,http://www.zixue.it/. (1)使用iostat命令. [test@localhost /]$ iostat -d Linux - ...

  7. 简单div遮罩

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Windows使用Telnet连接Linux服务器初探(待实践)

    在Windows下可以适用Telnet连接Linux服务器,但是前提是在Linux下需要安装Tlenet-Server.还要开启防火的23端口.搞定之后就可以用telnet IP进行连接. 但是,我发 ...

  9. Linux查看系统状态命令top

    用法 top 自动刷新系统状态,要结束使用[Ctrl]+[C] 效果图: 信息解释(转自百度经验http://jingyan.baidu.com/article/4d58d5412917cb9dd4e ...

  10. 你还在为移动端选择器picker插件而捉急吗?

    http://www.cnblogs.com/jingh/p/6381079.html 开题:得益于项目的上线,现在终于有时间来写一点点的东西,虽然很浅显,但是我感觉每经历一次项目,我就学到了很多的东 ...