1、查找数据

1)、利用FeaturCursor进行空间查询

//利用构造的Envelope(矩形框),查找和Envelope相交的FeatureClass的要素集

//结果数据利用循环FeatureCursor.nextFeature获得

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);

IFeature feature = searchCursor.NextFeature();

int n = 0;

while (feature != null){

n++;

feature = baseCursor.NextFeature();

}

2)、利用FeatureCursor在选择集中进行查询

IFeatureSelection pFeatureSelectio = pFeatureLayer as IFeatureSelection;

ICursor ppCursor;
pFeatureSelectio.SelectionSet.Search(null, false, out ppCursor);

IFeatureCursor pFeatureCursor = ppCursor as IFeatureCursor;

IFeature pFeature = pFeatureCursor.NextFeature();

3)、利用FeatureCursor进行属性查询

IQueryFilter pQueryFilter = new QueryFilterClass();

pQueryFilter.WhereClause = "PROJECTCODE = '" + this.ProjectNumTextBox.Text.Trim() + "'";

IFeatureCursor pFeatureCursor = LineFeaClass.Search(pQueryFilter, false);

IFeature pFeatureIfExit = pFeatureCursor.NextFeature();

2、 插入数据

1)、利用Insert Cursors和featureBuffer

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 = geometry;    
   featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "K Johnston");
for (int ic = 0; ic < 99; ic++)
{
     featureBuffer.Shape = geometry
     featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureCursor.Flush();

2)、直接进行数据插入(Feature.Store方法)

IFeature newLineFeature = LineFeaClass.CreateFeature();

newLineFeature.Shape = pFeature.Shape;
int ii = newLineFeature.Fields.FindField(AreaZonalName);

if (ii > 0)

{

newLineFeature.set_Value(ii, this.AnalysAreaComboBox.Text.Trim());
}

newLineFeature.Store();

3、数据删除 delete 

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 

IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");

// 属性查询

IQueryFilter queryFilter = new QueryFilterClass();

queryFilter.WhereClause = "ZONING_S = 'U'";

//利用FeatureCursor进行数据更新

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/suncarry/archive/2011/06/04/2072465.html

GIS数据的查找,插入,删除,更新(ArcEngine)相关推荐

  1. oracle+表的更新日志,测试oracle插入 删除 更新表的日志开销

    ###############测试插入 删除 更新表的日志开销 创建表 SYS@orcl >create table ssr(id int); 查询表空间,sys默认system,插入数据后此分 ...

  2. mysql 控制台环境下查询中文数据乱码,插入、更新中文数据不成功

    mysql 控制台环境下查询中文数据乱码,插入.更新中文数据不成功 登录mysql密码是加入编码参数--default-character-set,中文用gbk mysql -uroot -pabct ...

  3. 用DevExpress.Xpo 直接维护后台的 数据表,在这四列中录入的数据,即时插入或更新到关联的数据表中

    用DevExpress.Xpo 直接维护后台的 数据表,在这四列中录入的数据,即时插入或更新到关联的数据表中. 步骤: 1.引入DevExpress.Xpo.DLL服务 2.加入这些 using De ...

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

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

  5. 使用xom实现xml文件数据的查找,删除,修改(转载)

    说明: 1,程序需要安装第三方jar包,即xom的jar包可以在http://www.cafeconleche.org/XOM/找到相关下载链接进行下载 2,程序分为三部分,CreateMapXml. ...

  6. mysql 删除重复数据_MySQL查找和删除重复数据

    如何从MySQL中删除重复数据,只保留一条呢? 假设有如下一个数据表: mysql > SELECT * FROM users; +----+--------+ | id | name | +- ...

  7. SQLite学习笔记(七)-- 数据插入、更新和删除(C++实现)

    1.代码实例 代码说明 本例主要说明如何对数据表进行插入.更新和删除操作. 测试平台 1.开发语言:C++ 2.开发工具:VS2015 3.操作系统:Win7 X64 测试数据说明 测试表为Stude ...

  8. VC++对Access数据库的操作(查询、插入、更新、删除等)

    Microsoft Office Access是由微软发布的关系数据库管理系统.Access数据库常应用于小型软件系统中,比如:生产管理.销售管理.库存管理等各类企业管理软件,其最大的优点是:简单易学 ...

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

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

最新文章

  1. 双时隙的工作原理_工业内窥镜的原理是什么?有哪些测量方法
  2. python appium 并行多设备_学会使用python启动多个appium server,然后获取多台设备的driver...
  3. 看视频笔记1【wpf】
  4. Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
  5. android 弹出对话框时显示键盘
  6. 网管交换机怎么设置?网管交换机设置方法
  7. mysql 递归实现树形_Mysql实现树形递归查询
  8. linux date输出到文件,Linux常用命令--ls、cd、date用法
  9. emoji表情过滤处理
  10. mysql listagg函数 长度过长_MySQL索引是什么?怎么做?
  11. SPSS编程-统计自动化-VBA脚本开发
  12. 计算机术语宏是什么意思,宏(计算机术语)
  13. 程序员高效出书避坑和实践指南
  14. 【技巧】SourceInsight如何设置为相对路径
  15. [Python]提取docx/网页超链接
  16. 生成100个p元素,隔行变色(红、黄、蓝、绿、紫)
  17. ROS和ROS2.0到底该用哪个呢?
  18. 记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
  19. VUE 表格设置序号
  20. 笔记:OpenCV之眨眼检测

热门文章

  1. 提交代码前问自己七个问题!
  2. 不想当亿万富翁的程序员不是好老板
  3. Fabio技术手册(2):部署
  4. SecureCRT连接Linux终端中文乱码解决方法
  5. 操作系统:哲学家进餐问题
  6. java 克隆的作用_关于java中克隆的学习(一)
  7. harmonyos 2.0怎么升级,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  8. python集合加个逗号_8.Python集合与字符串
  9. 云计算数据中心规划设计方案
  10. 网络运维工作是什么的?