• AE查询与修改


    用ArcEngine做二次开发,做查询并对查询到的数据做修改是再正常不过的事情了!最近也做了一点这方面的学习。

    在查询过程中,主要用到,Search、Select、Update等方法。

    以下对几种方法做简要的介绍:

    1、    用ISelectionSet接口查询,返回IDs,再根据IDs获取要素,我现在用的是这种方法,因为我频繁的查数据,如果用游标就会产生大量的游标,很容易出现如“不能打开其他表了”或“调用COM组件错误”等错误提示。

      IQueryFilter pQueryFilter = new QueryFilterClass();

      pQueryFilter.WhereClause = "IDs=1";

    ISelectionSet selectionSet = lastFclass.Select(pQueryFilter,
                        esriSelectionType.esriSelectionTypeIDSet,
                        esriSelectionOption.esriSelectionOptionNormal, lastDset.Workspace);
                    //use an IEnumIDs to read the SelectionSet IDs       
                    IEnumIDs enumIDs = selectionSet.IDs;
                    int iD = enumIDs.Next();
                    if (iD == -1)
                        continue;
                    IFeature lastFeature = lastFclass.GetFeature(iD);

    2、用游标查询(Search),少量的修改可以用此方法,并最后用Feature的store()方法保存修改。但此方法如果频繁使用,因游标的不断递增,占用内存较大!相比较而言,上一种方法占用的内存较小。

    IQueryFilter pQueryFilter = new QueryFilterClass();

      pQueryFilter.WhereClause = "IDs=1";//例子,条件根据需要而定

       IFeatureCursor pmFeatureCursor = currentFclass.Search(pQueryFilter, false);//.Update(null, false);
                IFeature currentFeature = pmFeatureCursor.NextFeature();

    while(currentFeature!=null)

    {

         currentFeature =pmFeatureCursor..NextFeature();

    }

    pmFeatureCursor.Flush()

    3、用游标查询(Update),如果你想对查询的数据做修改,最好用Update方法

    IQueryFilter pQueryFilter = new QueryFilterClass();

      pQueryFilter.WhereClause = "IDs=1";//例子,条件根据需要而定

       IFeatureCursor pmFeatureCursor = currentFclass.Update(pQueryFilter, false);//.Update(null, false);
                IFeature currentFeature = pmFeatureCursor.NextFeature();

    while(currentFeature!=null)

    {

        //修改currentFeature要素字段值

        ……

       ……

        pmFeatureCursor.UpdateFeature(currentFeature);//更新修改
                    currentFeature = pmFeatureCursor.NextFeature();  //遍历的游标

    }

       pmFeatureCursor.Flush()

  • 相关阅读:
    感到工作效率低?是因为你缺少这套“外贸企业邮箱”办公软件
    用企业邮箱的好处,企业邮箱手机微信使用
    公司企业邮箱注册,公司为什么用企业邮箱?
    中小企业公司邮箱一般用哪个?申请企业邮箱的流程
    公司企业邮箱注册,企业邮箱怎么办理
    array_replace — 使用传递的数组替换第一个数组的元素
    array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
    array_reduce — 用回调函数迭代地将数组简化为单一的值
    array_rand — 从数组中随机取出一个或多个单元
    array_push — 将一个或多个单元压入数组的末尾(入栈)
  • 原文地址:https://www.cnblogs.com/wylaok/p/2574348.html
Copyright © 2020-2023  润新知