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);
                    }

  • 相关阅读:
    HDU 2767:Proving Equivalences(强连通)
    POJ 2828: Buy Tickets(线段树)
    HRBUST 2078:糖果(模拟,贪心)
    大视野 1016: [JSOI2008]最小生成树计数(最小生成树)
    HRBUST 2064:萌萌哒十五酱的宠物~(最近公共祖先LCA)
    HRBUST 2072:萌萌哒十五酱的礼物~(树,字典树)
    分组 F查询 Q 查询
    连表查询 复习
    django 多表操作
    orm 表单操作
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258688.html
Copyright © 2011-2022 走看看