ArcEngine 查询篇
统计字段唯一值
| 方式 | 支持shp | 支持geodatabase |
|---|---|---|
| IDataStatistics接口 | √ | √ |
| IQueryDef接口 | - | √ |
1,IDataStatistics 接口 sample
ICursor pCursor = pFeatureClass.Search(null, true) as ICursor;
IDataStatistics pDataStatistics = new DataStatistics();
pDataStatistics.Field = fieldName;
pDataStatistics.Cursor = pCursor;
//获取唯一值
IEnumerator uniqueValues = pDataStatistics.UniqueValues;
uniqueValues.Reset();
while (uniqueValues.MoveNext())
{ Console.WriteLine(uniqueValues.Current.ToString()); }
2,IQueryDef接口 sample
IDataset pDataset = pFeatureClass as IDataset;
IWorkspace pWorkspace = pDataset.Workspace;
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
// 设置唯一值语句
IQueryDef pQueryDef = pFeatureWorkspace.CreateQueryDef();
pQueryDef.Tables = pDataset.Name;
pQueryDef.SubFields = "distinct(" + fieldName + ")";
// 遍历唯一值
ICursor pCursor = pQueryDef.Evaluate();
IRow pRow = pCursor.NextRow();
while (pRow != null)
{ list.Add(pRow.get_Value(0).ToString());
pRow = pCursor.NextRow(); }
分组统计
使用IQueryDef2,GroupBy
参考
ArcEngine获取字段唯一值的三种方法
迁移到文件地理数据库
Where子句
- 在个人地理数据库中,通配符 * 代表任意数量的字符,通配符 ? 代表一个字符。而文件地理数据库则分别使用 % 和 _。
- 个人地理数据库中用 # 分隔日期和时间,但在文件地理数据库中它们则以单词 date 开头。(#06-13-2001 19:30:00# or date '2001-06-13 19:30:00')
[

浙公网安备 33010602011771号