zoukankan      html  css  js  c++  java
  • 修改Feature的属性表的值

    首先要获取Featureclass,利用Featureclass获取IWorkspace和IWorkspaceEdit:

                    IWorkspace workspace = ((IDataset)pFeatureClass).Workspace;
                    IWorkspaceEdit workspaceEdit = workspace as IWorkspaceEdit;

    然后开启编辑状态:

                    bool startEdit = workspaceEdit.IsBeingEdited();
                    if (!startEdit)
                    {
                        workspaceEdit.StartEditing(false);
                    }
                    workspaceEdit.StartEditOperation();

    然后获取IFeatureCursor和IFeature:

                    pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);

                    //注意这里一定要为false,

                    //如果为true可能会产生0x80040958的错误,遍历每一个Feature
                    pFeature = pFeatureCursor.NextFeature();

    然后用IFeature.set_Value()方法对Feature进行属性表值的修改:

                     pFeature.set_Value(i, valueToSet);

    修改完成,要用IFeature.store()方法保存:

                    pFeature.Store();

    然后最好将Feature释放掉,再进行接下来的修改:

                    System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeature);
                    pFeature = null;
                    pFeature = pFeatureCursor.NextFeature();

    接下来用IFeatureCursor.Flush():

                    pFeatureCursor.Flush();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);

    最后停止编辑状态:
                    workspaceEdit.StopEditOperation();
                    startEdit = workspaceEdit.IsBeingEdited();
                    if (!startEdit)
                    {
                        workspaceEdit.StopEditing(true);
                    }

  • 相关阅读:
    根据服务端生成的WSDL文件创建客户端支持代码的三种方式
    2017第45周一java多线程创建方法
    java 分布式锁
    设计的背后
    Java中的锁概念
    maven变量
    清零成长法
    Java消息队列
    Java9的新特性
    2017第43周日
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258688.html
Copyright © 2011-2022 走看看