ArcObjects Library Reference (GeoDatabase)  

IFeatureCursor Interface

Provides access to members that hand out enumerated features, field collections and allows for the updating, deleting and inserting of features.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method DeleteFeature Delete the existing Feature in the database corresponding to the current position of the cursor.
Read-only property Fields The fields Collection for this cursor.
Method FindField The index of the field with the specified name.
Method Flush Flush any outstanding buffered writes to the database.
Method InsertFeature Insert a new Feature into the database using the property values in the input buffer. The ID of the new Feature is returned.
Method NextFeature Advance the position of the cursor by one and return the Feature object at that position.
Method UpdateFeature Update the existing Feature in the database corresponding to the current position of the cursor.

CoClasses that implement IFeatureCursor

CoClasses and Classes Description
FeatureCursor Esri Feature Cursor object.
RelQueryCursor A cursor that is opened from a RelQueryTable.
TemporalCursor (esriTrackingAnalyst) Controls settings for the temporal cursor.


The IFeatureCursor interface provides access to a set of features in a feature class. It operates in the same way as ICursor, although it does not inherit from that interface. This saves you from having to use Query-Interface when dealing with features rather than rows.

Feature cursors can be used as an input to IFeatureCursorBuffer, which lets you spatially buffer the features by a distance.

You can also draw the features from a cursor on the display. For more information, see the IFeatureRenderer::Draw method.

When using cursors within an edit session, they should always be scoped to edit operations. In other words, a cursor should be created after an edit operation has begun and should not be used once that edit operation has been stopped or aborted.

.NET Snippets

Get All Features from Point Search in GeoFeatureLayer | Get First Feature from Point Search in GeoFeatureLayer | Zoom to Selected Globe Features | Perform Spatial Query

.NET Samples

Closest facility solver (Code Files: frmClosestFacilitySolver) | Cut polygons without selection edit task (Code Files: CutPolygonsWithoutSelectionEditTask) | Editing using a custom form (Code Files: EditorForm) | Custom reshape polyline edit task (Code Files: ReshapePolylineEditTask) | ViperPin tool (Code Files: ViperPinForm) | Location-allocation solver (Code Files: frmLocationAllocationSolver) | Extending the replication synchronization process (Code Files: RasterSyncWorkspaceExtension) | Calculate area geoprocessing function tool (Code Files: CalculateAreaFunction) | RSS weather GraphicTracker (Code Files: RSSWeather) | Get and set key properties on a mosaic dataset (Code Files: GetSetKeyProperty) | StreetMap routing (Code Files: RoutingForm) | RSS weather layer (Code Files: AddWeatherItemTool RSSWeatherLayerClass) | Multivariate renderer (Code Files: MultivariateRenderer) | Create camera flyby from path (Code Files: frmCameraPath) | Play back tracking data (Code Files: PlaybackDataButton)

.NET Related Topics

Updating features | 3DAnalyst | Adjusting feature locations with spatial adjustment | Creating features | Defining a renderer for a layer | Executing spatial queries | Geodatabase | Geodatabase API best practices | How to access the features in an in-memory output layer using IFeatureCursor | How to add point IDs to a polyline | How to create a union of several polygons | How to generate directions | How to zoom to selected features in globe | Managing application state | Querying geodatabase tables | Releasing COM references | Updating attributes of existing features | Using ArcObjects as tool input | Working with query cursors