zoukankan      html  css  js  c++  java
  • 对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;//排序结果输出 
    

      

  • 相关阅读:
    无法直接启动带有"类库输出类型"的项目解...
    基于.NET的免费开源的模板引擎---VTemplate(转)
    用户 'IIS APPPOOLDefaultAppPool' 登录失败。
    如何获得配置文件中,连接数据库的连接字符串
    如何获取数据库的链接字符串
    IIS运行.NET4.0配置
    Repeater用法
    asp.net三层架构详解
    C#本地时间转Unix时间
    C#Timer
  • 原文地址:https://www.cnblogs.com/lettet/p/4329038.html
Copyright © 2011-2022 走看看