博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
阅读量:6003 次
发布时间:2019-06-20

本文共 2746 字,大约阅读时间需要 9 分钟。

风过无痕 原文  

 

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

1、查找数据Search Cursors

//by yl   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   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 = 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();

 

3、 数据删除 delete   

//by yl   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   

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//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();
}

 

 

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6114330.html
,如需转载请自行联系原作者
你可能感兴趣的文章
java学习笔记(1)
查看>>
禁止Mysql默认端口访问Internet - MySQL - IT技术网
查看>>
基于用户投票的排名算法(二):Reddit
查看>>
下午最后的草坪
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
用PHP读取和编写XML DOM4
查看>>
1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组...
查看>>
vim配置及快捷键
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>
[转载] win10进行端口转发
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>
从零开始搭建vue项目 请求拦截器 响应拦截器
查看>>
HDU3257 Hello World!【打印图案+位运算】
查看>>
jquery 选择器
查看>>
The secret code
查看>>
Makefile 多目录自动编译
查看>>
学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中
查看>>
统一Matlab下不同子图的色标colorbar
查看>>
Linux 进程间通信(二) 管道
查看>>
深入浅出JQuery (二) 选择器
查看>>