//由于测试数据不完善,featureClass在此要只设null值,真实功能要设实际的值
IFeatureClass featureClass = null; //获取某个字段的索引,后面取字段值用到
int xxxFieldIdx = featureClass.FindField("xxx"); //获取到IWorkspaceEdit接口,IWorkspaceEdit是编辑必须的接口
IWorkspaceEdit workspaceEdit = (featureClass as IDataset).Workspace as IWorkspaceEdit; //开始编辑的两个重要方法,StartEditing第一个参数是是否允许Undo,Redo(重做,撤销),如果是后台数据处理功能一般关系不大
workspaceEdit.StartEditing(true);
//构成一个EditOperation有StartEditOperation和StopEditOperation方法,Undo,Redo是针对一个EditOperation的
workspaceEdit.StartEditOperation(); //插入要素不止一种方法,此例介绍的是游标插入法,优点是插入速度比较快
//注意此处的游标是插入游标,而不是之前查询功能的查询结果游标,他们接口是一样的,但是获取方式不同
IFeatureCursor featureCursorInsert = null;
//IFeatureBuffer跟IFeature用法差不多,可理解为专用于插入的feature
IFeatureBuffer featureBuffer = null; //这里加try的原因是,如果编辑时出错,需要调用IWorkspaceEdit的一些方法来回滚修改内容
//而且编辑出错几率比一般功能大
try
{
//获取插入游标
featureCursorInsert = featureClass.Insert(true); //模拟插入10条要素,当前实际功能不会这样写
for (int i = ; i < ; i++)
{
//创建featureBuffer
featureBuffer = featureClass.CreateFeatureBuffer(); //赋值的方式跟编辑一样 //修改属性字段的字段值
featureBuffer.Value[xxxFieldIdx] = "eee"; IPoint point = new PointClass();
point.PutCoords(, );
//修改几何字段的字段值
//因为几何字段只有一个,所以不需要字段索引
featureBuffer.Shape = point; //赋值后调用插入游标的InsertFeature方法完成插入一条记录
featureCursorInsert.InsertFeature(featureBuffer);
} //保存编辑
//之前的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)接口详解(4):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(); 只要没有写锁,读锁可 ...

  10. java.io.DataInput接口和java.io.DataOutput接口详解

    public interface DataInput DataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据.同时还提供根据 UTF-8 修改版格式的数据重构 Strin ...

随机推荐

  1. iOS 开发之多线程之GCD

    1.GCD(Grand Centrol Dispath) 并行:宏观以及微观都是两个人再拿着两把铁锹在挖坑,一小时挖两个大坑 并发:宏观上是感觉他们都在挖坑,微观是他们是在使用一把铁锹挖坑,一小时后他 ...

  2. BZOJ2741 【FOTILE模拟赛】L 【可持久化trie + 分块】

    题目 FOTILE得到了一个长为N的序列A,为了拯救地球,他希望知道某些区间内的最大的连续XOR和. 即对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor Aj) ...

  3. 【强连通分量缩点】poj 1236 Network of Schools

    poj.org/problem?id=1236 [题意] 给定一个有向图,求: (1)至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 (2)至少要加多少条边,才能使得从任何一个顶点出发,都 ...

  4. hdu 3711

    #include<stdio.h> #include<math.h> #include<stdlib.h> int cmp(const void *a,const ...

  5. HashMap构造函数有哪些

    hashMap有4个构造函数: public HashMap(int initialCapacity, float loadFactor) public HashMap(int initialCapa ...

  6. bzoj 4401 块的计数 思想+模拟+贪心

    块的计数 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 455  Solved: 261[Submit][Status][Discuss] Descr ...

  7. Win10下安装虚拟机提示“Intel VT-x处于禁用状态”如何解决

    今天在自己的笔记电脑上想安装一个Kali虚拟机学习用,安装的时候遇到这个问题,提示"Intel VT-x处于禁用状态". 要进入Win10的BIOS,先进入"设置&quo ...

  8. STL学习笔记(五) 算法

    条款30:确保目标区间足够大 条款31:了解各种与排序有关的选择 //使用unaryPred划分输入序列,使得unaryPred为真的元素放在序列开头 partition(beg, end, unar ...

  9. net8:简易的文件磁盘管理操作二(包括文件以及文件夹的编辑创建删除移动拷贝重命名等)

    原文发布时间为:2008-08-07 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  10. Redis数据结构之简单动态字符串

    Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将SDS用作Redi ...