Loading

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')


[

](https://blog.csdn.net/HerryDong/article/details/105607174?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.control&spm=1001.2101.3001.4242)

posted @ 2025-03-12 22:31  一起滚月球  阅读(9)  评论(0)    收藏  举报