• 对IFeatureClass的选择结果进行再次选择及排序


    最近需要对IFeatureClass的选择结果进行再次选择,并对再次选择的结果按照两个属性进行排序操作。于是先用IFeatureClass.Select方法进行第一次选择,将选择的结果用ISelectionSet类型变量SelectionSet1存放。然后需要对SelectionSet1中的要素进行再次选择,并且对选择结果进行排序,这时候问题就来了:用ISelectionSet.Search方法进行查询选择并排序时,如果在IQueryFilter.WhereClause选择语句后面加上排序词(order by xxx)就会报错:SQL命令未正确结束。

    问题:ISelectionSet.Search方法进行选择不支持按属性排序

    原因:未搞清,疑为AE不支持或者自己方法不正确

    解决方法:将第二次查询结果SelectionSet1.Select通过ISelectionSet变量SelectionSet2进行存储,然后使用ITableSort接口对SelectionSet2中的数据进行按属性值排序。代码如下:

    ISelectionSet SelectionSet2= emptySelSet.Select(queryFilter,esriSelectionType.esriSelectionTypeHybrid,esriSelectionOption.esriSelectionOptionNormal,null);//存储第二次查询结果
    
    string strSortField = "CARID,TIME";//排序所需属性
    ITableSort pTableSort = new TableSort();
    pTableSort.SelectionSet = SelectionSet2;//排序数据源输入
    pTableSort.Fields = strSortField;
    pTableSort.set_Ascending(strSortField,true);//选择升序排列
    pTableSort.Sort(null);
    
    IFeatureCursor emptyLineFeaCursor = pTableSort.Rows as IFeatureCursor;//排序结果输出 
    

      

  • 相关阅读:
    基于JFinal中搭建wopi协议支撑办法
    mysql 增加列
    国王分金币
    口算题卡升级版本
    elasticsearch牛人的日志列表
    牛B的大数据库
    golang --rune
    golang ---rune与byte
    golang学习笔记--接口
    golang学习笔记--函数和方法
  • 原文地址:https://www.cnblogs.com/lettet/p/4329038.html
Copyright © 2020-2023  润新知