featurecursor

 //IFeatureBuffer Example

    public void IFeatureBuffer_Example(IFeatureClass featureClass)
    {
        //Function is designed to work with polyline data
        if (featureClass.ShapeType != ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline) { return; }


        //get the Workspace from the IDataset interface on the feature class
        IDataset dataset = (IDataset)featureClass;
        IWorkspace workspace = dataset.Workspace;
        //Cast for an IWorkspaceEdit
        IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;


        //Start an edit session and operation
        workspaceEdit.StartEditing(true);
        workspaceEdit.StartEditOperation();


        //Create the Feature Buffer
        IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
        //Create insert Feature Cursor using buffering = true.
        IFeatureCursor featureCursor = featureClass.Insert(true);


        object featureOID;


        //With a feature buffer you have the ability to set the attribute for a specific field to be
        //the same for all features added to the buffer.
        featureBuffer.set_Value(featureBuffer.Fields.FindField("InstalledBy"), "K Johnston");


        //Here you can set the featurebuffers's shape by setting the featureBuffer.Shape
        //to a geomerty that matched the featureclasses.
        //Create 100 features using FeatureBuffer and insert into a feature cursor
        ESRI.ArcGIS.Geometry.IPolyline polyline = new ESRI.ArcGIS.Geometry.PolylineClass();
        ESRI.ArcGIS.Geometry.IPoint point = new ESRI.ArcGIS.Geometry.PointClass();
        for (int i = 0; i < 100; i++)
        {
            //Create the polyline geometry to assign to the new feature
            point.X = 498490 + i * 10;
            point.Y = 675380 + i * 10;
            polyline.FromPoint = point;
            point = new ESRI.ArcGIS.Geometry.PointClass();
            point.X = 498480 + i * 10;
            point.Y = 675390 + i * 10;
            polyline.ToPoint = point;
            featureBuffer.Shape = polyline;


            //Insert the feature into the feature cursor
            featureOID = featureCursor.InsertFeature(featureBuffer);
        }
        //Flush the feature cursor to the database
        //Calling flush allows you to handle any errors at a known time rather then on the cursor destruction.
        featureCursor.Flush();


        //Stop editing
        workspaceEdit.StopEditOperation();
        workspaceEdit.StopEditing(true);


        //Release the Cursor
        System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);

原文地址:https://www.cnblogs.com/zhangjun1130/p/1406133.html