arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
生活随笔
收集整理的這篇文章主要介紹了
arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
風過無痕 原文? 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,实现数据的快速查找,插入,删除,更新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好看的日本的推理剧有哪些(日本侦探推理电
- 下一篇: 电脑上不去github(电脑上不去网页)