ArcEngine查询属性数据表

news/2024/7/3 13:52:21

1实现原理

        使用要素类(IFeatureClass)查询获取游标(IFeatureCursor),遍历游标装载数据到数据表(DataTable)中。

2涉及接口

       IFeatureClass、IFeatureCursor、IQueryfilter

3具体实现

 1 DataTable dt = new DataTable("AttributeTable");
 2 
 3 ILayer layer = this.axMapControl1.get_Layer(0);
 4 IFeatureLayer featureLayer = layer as IFeatureLayer;
 5 IFeatureClass featureClass = featureLayer.FeatureClass;
 6 
 7 for (int i = 0; i < featureClass.Fields.FieldCount; i++)
 8 {
 9     DataColumn dc = new DataColumn();
10     dc.ColumnName = featureClass.Fields.get_Field(i).AliasName;
11     dt.Columns.Add(dc);
12 }
13 
14 IQueryFilter filter = new QueryFilterClass();
15 filter.WhereClause = "";
16 IFeatureCursor featureCursor = featureClass.Search(filter, false);
17 IFeature feature = featureCursor.NextFeature();
18 while (feature != null)
19 {
20     DataRow dr = dt.NewRow();
21     for (int i = 0; i < feature.Fields.FieldCount; i++)
22     {
23         if (feature.Fields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry)
24         {
25             string geoType;
26             switch (feature.Shape.GeometryType)
27             {
28                 case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:
29                     geoType = "";
30                     break;
31                 case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:
32                     geoType = "";
33                     break;
34                 case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:
35                     geoType = "线";
36                     break;
37                 default:
38                     geoType = "未知";
39                     break;
40             }
41             dr[i] = geoType;
42         }
43         else
44         {
45             dr[i] = feature.get_Value(i);
46         }
47     }
48     dt.Rows.Add(dr);
49 
50     feature = featureCursor.NextFeature();
51 }
52 
53 this.dataGridView1.DataSource = dt;

 

转载于:https://www.cnblogs.com/HelsingWang/p/8945192.html


http://www.niftyadmin.cn/n/1998501.html

相关文章

Win XP 键盘快捷键概述

Win XP 键盘快捷键概述 在 Win XP 中工作和Windows中工作时一样&#xff0c;利用快捷键代替鼠标。可以利用键盘快捷键打开、关闭和导航“开始”菜单、桌面、菜单、对话框以及网页。键盘还可以让您更简单地与计算机交互。 单击一个标题或按 TAB 键可以突出显示这个标题&#xff…

4月25日云栖精选夜读:阿里巴巴CEO张勇:“有种乡愁叫淘宝”

“有种乡愁叫淘宝。” 4月24日&#xff0c;阿里巴巴集团CEO张勇在澳大利亚举办的“阿里之夜”上&#xff0c;对着台下2400名从各地赶来的华人听众、澳洲商家、生态合作伙伴说。据悉&#xff0c;此次阿里巴巴举办的活动&#xff0c;所有现场的门票在十分钟内被一扫而空。 热点热…

Windows XP的几个使用技巧

Windows XP的几个使用技巧 一、快速缩放网页字体 笔者无意中将书压在了Ctrl键上&#xff0c;再用鼠标滚轮滚动网页时&#xff0c;发现网页并没有上下滚动&#xff0c;取而代之的是网页字体的缩放。按住Ctrl键后&#xff0c;向上滚动滚轮字体缩小&#xff0c;向下滚动放大。这个…

第11件事 产品战略规划十步法

第3章 产品战略与规划 第11件事 产品战略规划十步法 第12件事 战略规划常用的9种工具 第13件事 用户和市场需求分析的方法 第14件事 分析竞争对手的方法 第15件事 远离模糊的战略方向和产品定位 第16件事 愿景和目标要接地气 第17件事 成功要素分析 第18件事 实现目标需要谋略和…

java网络编程 connection refused:connect_Java网络编程基础篇

一、前言网络通讯在系统交互中是必不可少的一部分&#xff0c;无论是面试还是工作中都是绕不过去的一部分&#xff0c;本节我们来谈谈Java网络编程中的一些知识二、 网络通讯基础知识网络通讯的本质用一句话来说是处于两个主机上的两个进程之间进行通讯&#xff0c;如下图&…

交叉熵代价函数(作用及公式推导)

交叉熵代价函数&#xff08;Cross-entropy cost function&#xff09;是用来衡量人工神经网络&#xff08;ANN&#xff09;的预测值与实际值的一种方式。与二次代价函数相比&#xff0c;它能更有效地促进ANN的训练。在介绍交叉熵代价函数之前&#xff0c;本文先简要介绍二次代价…

你应该知道的Windows XP的小秘密

自从微软发布Windows XP以来&#xff0c;Windows XP已经得到人们越来越广泛的应用&#xff0c;微软也宣称它是迄今为止最好的操作系统。Windows XP到底有什么出色的地方&#xff1f;让我先来告诉你其中的一些小秘密吧&#xff01; ● 关闭自动播放功能 一旦您将媒体插入驱动器&…

精通Java设计模式从初见到相爱全集(1-23)

为什么80%的码农都做不了架构师&#xff1f;>>> 1、如何使用&#xff1f; 设计模式是为了解决问题产生的,一种解决方案&#xff0c;你的问题是什么决定你用什么设计模式, 你没有问题却偏要生搬硬套一个设计模式上去, 这就是没事找事&#xff0c;你的问题就像: 自己…