ArcEngine查询统计(IQueryFilter), 表连接查询
来源:互联网 发布:原油eia数据最新消息 编辑:程序博客网 时间:2024/05/22 13:14
一、
用ArcEngine的接口做过查询统计的同学应该知道,由于ArcEngine并没有完整支持SQL,所以做简单的查询还好,稍微复杂一点就开始捉襟见肘了。
现在总结一下几种查询的方法:1.IQueryFilter、ISpatialFilter接口。
这是最常见的,把参数设置进去,然后调用IFeatureClass或者ITable的Search方法就行。可以转为IQueryFilterDefinition接口设置Order By和Group By语句。
个人觉得这个接口最方便,可以设置多表查询。虽然有些帮助文档说不能使用Order By和Group By语句,但是其实是可以的,比如可以这样设置:
queryDef.Tables = “tableA Group by Field01”;
queryDef.SubFields = “Field01”;
或者
queryDef.Tables = “tableA”;
queryDef.SubFields = “Field01, COUNT(Field01)”;
queryDef.WhereClause = “Field01 is not null GROUP BY Field01 HAVING COUNT(Field01) > 1”;
但是这个接口只可以用在GeoDatabase,不能用于ShapeFile和Coverage数据。
3.使用IDataStatistics接口,然后调用Statistics方法返回IStatisticsResults对象,可以获取六种统计结果。
二、
AE中查询主要的接口有IQueryFilter,ISpatialQuery,IQueryDef这三个接口。
其中ISpatialQuery主要是空间查询。
其中IQueryDef可以进行多表查询,IQueryDef.Table为要查询表的名称,多个表用","隔开。IQueryDef2接口继承于IQueryDef,并增加了PostfixClause属性,这个属性主要是用来排序的。
例如ORDER BY Pop1996,另外还有个PrefixClause属性。主要用来定义DISTINCT这个关键字 ,更SQL中的一样。查询结果是只读的无法对其修改。
IQueryDef2 queryDef2 = (IQueryDef2)featureWorkspace.CreateQueryDef();// Specify the table and fields to query.queryDef2.Tables = "Cities";queryDef2.SubFields = "Name, Pop1996"; //注意PostfixClause中的字段必须出现在SubFields属性中 否则会报错queryDef2.PostfixClause = "ORDER BY Pop1996 DESC";// Execute the query.using (ComReleaser comReleaser = new ComReleaser()){ ICursor cursor = queryDef2.Evaluate2(true); comReleaser.ManageLifetime(cursor); int nameIndex = cursor.FindField("Name"); int pop1996Index = cursor.FindField("Pop1996"); IRow row = null; while ((row = cursor.NextRow()) != null) { String cityName = Convert.ToString(row.get_Value(nameIndex)); //结果只读 无法修改 int population = Convert.ToInt32(row.get_Value(pop1996Index)); Console.WriteLine("{0}: {1}", cityName, population); }}
阅读全文
0 0
- ArcEngine查询统计(IQueryFilter), 表连接查询
- AE查询 IQueryFilter ISpatialFilter
- ArcGIS—IQueryFilter查询区分大小写
- SQL 多表连接统计查询
- mysql查询统计连接情况
- ArcEngine 唯一值查询
- ArcEngine定义查询
- ArcEngine连接Arcgis Server地图服务之查询
- 交叉表查询统计
- 三表查询、统计
- 多表查询----连接查询
- thinkphp3.2 分组统计连接查询
- sql 知识点统计 多表sql查询连接
- arcengine 空间查询SpatialRelDescription使用
- arcengine 不同数据源属性查询
- ArcEngine图层属性查询
- 统计查询
- 统计查询
- java开发相关工具的配置——入职第1天工作总结
- HDU-1005 Number Sequence 循环结
- 【Linux基础】vim编辑器用法详解
- 二叉查找树迭代器-LintCode
- 异步赠书:7月重磅大咖新书机器学习/Android/python
- ArcEngine查询统计(IQueryFilter), 表连接查询
- SpringMVC的配置
- 12.3-全栈Java笔记:Java网络编程(一)
- android按钮的点击事件
- 如何创建和发布Web Service
- centos7部署zabbix3.2.6
- java设计模式-单例模式
- 使用spring的jdbcTemplate时,需要的配置文件
- maven install error in opening zip file