风过无痕 原文  arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新

深入理解游标Cursors,实现数据的快速查找,插入,删除,更新

1、查找数据Search Cursors

//by yl landgis@126.com yanleigis@21cn.com 2008.7.7

IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(508786, 681196, 513033, 684341);
ISpatialFilter spatialFilter = new SpatialFilterClass();
spatialFilter.Geometry = envelope;
String shpFld = featureClass.ShapeFieldName;
spatialFilter.GeometryField = shpFld;
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter = (IQueryFilter)spatialFilter;IFeatureCursor searchCursor = featureClass.Search(queryFilter, true);//只查询,true快一些
IFeature feature = searchCursor.NextFeature();
int n = 0;
while (feature != null){n++;feature = baseCursor.NextFeature();
}

2、插入数据Insert Cursors—目前数据插入最快的方法

//by yl landgis@126.com yanleigis@21cn.com 2008.7.7

IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
IFeatureCursor featureCursor = featureClass.Insert(true);
object featureOID;
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "B Pierce");for (int ic = 0; ic < 99; ic++) {      featureBuffer.Shape = geometryfeatureOID = featureCursor.InsertFeature(featureBuffer);
}featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "K Johnston");for (int ic = 0; ic < 99; ic++)
{featureBuffer.Shape = geometryfeatureOID = featureCursor.InsertFeature(featureBuffer);
}featureCursor.Flush();

3、 数据删除 delete

//by yl landgis@126.com yanleigis@21cn.com 2008.7.7

IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'R'";
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);IFeature feature = updateCursor.NextFeature();int m = 0;
while (feature != null)
{m++;updateCursor.DeleteFeature(feature);feature = updateCursor.NextFeature();
}

4、数据更新 update

//by yl landgis@126.com yanleigis@21cn.com 2008.7.7
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");// restrict the number of features to be updated.
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'U'";// use IFeatureClass::Update to populate IFeatureCursor
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);
int fieldindex = featureClass.FindField("ZONING_S");
IFeature feature = updateCursor.NextFeature();int m = 0;
while (feature != null)
{m++;feature.set_Value(fieldindex, "X");updateCursor.UpdateFeature(feature);feature = updateCursor.NextFeature();
}

转载于:https://www.cnblogs.com/arxive/p/6114330.html

arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新相关推荐

  1. mysql利用外连接删除数据_MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新...

    1.内连接查询:inner join ... on 只有满足条件的记录才能够出现在结果关系中,即完全相等.自连接查询是一种特殊的内连接查询. 2.外连接查询: 1>左外连接 / 左连接:返回包括 ...

  2. 利用SQL语句对数据进行操作:插入、更新与删除数据行

    My目录 前言 一.T-SQL的组成 二.插入数据行 1.一次插入一行数据 2.一次插入多行数据 三.更新数据行 四.删除数据行 前言 结构化查询语言(Structured Query Languag ...

  3. excel删除重复数据保留一条_Excel怎么快速查找和删除重复数据

    我们用excel表格记录了大量的数据,当要做数据整理时候发现很多重复数据,那么怎么筛选删除呢? ---------------------------------------------------- ...

  4. Oracle数据库----表中数据的操作(插入、更新、删除数据)

    文章目录 一.插入数据 插入多行数据的简单方法: 1.将表一的全部数据添加到表二中 创建副本Courses1,只复制Courses的结构 将Courses表中的数据拷贝到Courses1中 创建副本的 ...

  5. 使用python实现大数据的快速查找

    使用Python查找大数据文件中与目标数据匹配的行数据. 代码实现如下: import win32api,win32conimport win32ui # #coding=utf-8 import o ...

  6. 12306泄露的数据,快速查找有木有你的, 编程实现示例

    </pre><pre code_snippet_id="576257" snippet_file_name="blog_20150110_2_96436 ...

  7. 批量插入或更新数据(MyBatis-plus框架)

    目录 1.场景说明 2.DUPLICATE 和REPLACE比较 3.批量插入或者更新(两种方式) 方式一:mybatis-plus的saveOrUpdateBatch方法 问题:如果操作类集成了基础 ...

  8. [导入]在SYBASE数据库中使用游标(Cursors)将多行查询结果进行逐行处理

    在SYBASE数据库中使用游标(Cursors)将多行查询结果进行逐行处理 2000-08-16 14:47:33 在SYBASE数据库中,说明性数据库语言(SQL)是目前首推的最成功,应用最广泛的数 ...

  9. 一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图)值得收藏!!!

    受多种情况的影响,又开始看JVM 方面的知识. 1.Java 实在过于内卷,没法不往深了学. 2.面试题问的多,被迫学习. 3.纯粹的好奇. 很喜欢一句话:"八小时内谋生活,八小时外谋发展. ...

最新文章

  1. java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除
  2. Ansible roles角色实战案例:httpd nginx memcached mysql
  3. nginx+uWSGI + django部署项目
  4. 从javaScript数据类型开始了解垃圾回收机制
  5. 软件使用时间限制_利用家长控制限制孩子使用电脑时间,让其只能学习不能玩游戏...
  6. Hibernate.cfg.xml 整理
  7. c语言如何引用一维数组,C语言一维数组的定义和引用
  8. PL/SQL工具如何连接oracle数据库
  9. stm32mp1 Cortex M4开发篇6:TIM定时器中断
  10. 打开plsqldev报错解决
  11. IDEA中自动导包及快捷键
  12. 计算相关系数进行显著性检验
  13. oracle数据库还原指令,oracle中备份和还原数据库的命令汇总
  14. 计算机网络本直通线的制作方法,计算机网络技术实训报告模版--交叉线与直通线制作.doc...
  15. linux查看gc日志,GC通用日志解读
  16. Day_03——MySQL数据库查询语句练习
  17. 分数化成有限小数的方法_小数化成分数的方法
  18. 数字图像处理--冈萨雷斯第4版--第一章 绪论
  19. C++面试-interview
  20. caffe(ubuntu14.04)学习笔记1——运行MNIST数据集模型

热门文章

  1. 用计算机处理信息教学反思,《人工智能处理信息》教学反思
  2. python和c#哪个简单-最近学习 Python 的一些感触 (对比 C#)
  3. python判断奇偶数字符串的拼接_Python字符串拼接方法总结
  4. android官方架构组件,Android 架构组件官方文档01——LifeCycle
  5. app http routes.php,Laravel:我的应用程序没有被路由(Laravel : My app doesn't get routed)
  6. mysql不同版本会覆盖吗,[mysql不同版本数据库同步]mysql数据库主从同步,master和slave上的mysql必须版本一样吗,如果不一样会有什么结果?...
  7. deepin下载python_深度操作系统中怎样下载python?
  8. linux find 权限不够,超级用户find: `/home/pipi/.gvfs': 权限不够
  9. 自学python条件_自学Python2.8-条件(if、if...else)
  10. OPC服务器如何采集设备的信息,如何将OPC服务器采集的设备数据转为MQTT方式,实现云端发布或订阅...