• 修改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);
                    }

  • 相关阅读:
    大纲锤炼:深入浅出WF4.0
    谈谈技术面试 A Lazy Programmer's Footprint
    推荐一本写给IT项目经理的好书
    UML成长笔记
    写于Silverlight整装待发之际【瞿杰】
    虛擬化、iPad/iPhone相關運用、攝影方面
    (2)经典导读:(webabcd)的Silverlight文章索引
    (1)经典导读:坚持学习WF文章索引[carysun]
    索引测试
    js导航条 二级滑动 模仿块级作用域
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258688.html
Copyright © 2020-2023  润新知