对IFeatureClass的选择结果进行再次选择及排序
最近需要對(duì)IFeatureClass的選擇結(jié)果進(jìn)行再次選擇,并對(duì)再次選擇的結(jié)果按照兩個(gè)屬性進(jìn)行排序操作。于是先用IFeatureClass.Select方法進(jìn)行第一次選擇,將選擇的結(jié)果用ISelectionSet類型變量SelectionSet1存放。然后需要對(duì)SelectionSet1中的要素進(jìn)行再次選擇,并且對(duì)選擇結(jié)果進(jìn)行排序,這時(shí)候問(wèn)題就來(lái)了:用ISelectionSet.Search方法進(jìn)行查詢選擇并排序時(shí),如果在IQueryFilter.WhereClause選擇語(yǔ)句后面加上排序詞(order by xxx)就會(huì)報(bào)錯(cuò):SQL命令未正確結(jié)束。
問(wèn)題:ISelectionSet.Search方法進(jìn)行選擇不支持按屬性排序
?
原因:未搞清,疑為AE不支持或者自己方法不正確
?
解決方法:將第二次查詢結(jié)果SelectionSet1.Select通過(guò)ISelectionSet變量SelectionSet2進(jìn)行存儲(chǔ),然后使用ITableSort接口對(duì)SelectionSet2中的數(shù)據(jù)進(jìn)行按屬性值排序。代碼如下:
ISelectionSet SelectionSet2= emptySelSet.Select(queryFilter,esriSelectionType.esriSelectionTypeHybrid,esriSelectionOption.esriSelectionOptionNormal,null);//存儲(chǔ)第二次查詢結(jié)果string strSortField = "CARID,TIME";//排序所需屬性 ITableSort pTableSort = new TableSort(); pTableSort.SelectionSet = SelectionSet2;//排序數(shù)據(jù)源輸入 pTableSort.Fields = strSortField; pTableSort.set_Ascending(strSortField,true);//選擇升序排列 pTableSort.Sort(null);IFeatureCursor emptyLineFeaCursor = pTableSort.Rows as IFeatureCursor;//排序結(jié)果輸出
轉(zhuǎn)載于:https://www.cnblogs.com/lettet/p/4329038.html
總結(jié)
以上是生活随笔為你收集整理的对IFeatureClass的选择结果进行再次选择及排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转载】adb shell dumpsy
- 下一篇: 【Weiss】【第03章】练习3.7:有