思路大体如下:首先根据图层属性中的字段创建一个空的DataTable,然后根据数据内容一行行填充DataTable数据,再将DataTable绑定到DataGridView控件,最后调用并显示属性表窗体。 "System.DateTime";case esriFieldType.esriFieldTypeDouble: return "System.Double";case esriFieldType.esriFieldTypeInteger: return "System.Int32";case esriFieldType.esriFieldTypeSmallInteger: return "System.Int16";case esriFieldType.esriFieldTypeString: return "System.String";default: return "System.Object";}} 3. 填充 DataTable数据 获取图层中的记录集,通过迭代器遍历每一行数据,将数据填充到先前创建的 DataTable 中。这一步骤涉及到对 IRecordset 和 ICursor 接口的使用。代码示例如下: ```csharp // 获取图层的记录集 IRecordset pRecordSet = null; IFeatureCursor pFeatureCursor = pLayer.FeatureClass.Search(null, false); pRecordSet = pFeatureCursor as IRecordset; // 遍历记录集,填充 DataTable IRow pRow = null; while ((pRow = pRecordSet.NextRow()) != null) { // 将 IRow 转换为 DataRow DataRow dataRow = pDataTable.NewRow(); for (int j = 0; j < pDataTable.Columns.Count; j++) { dataRow[j] = pRow.get_Value(j); } // 添加数据行到 DataTable pDataTable.Rows.Add(dataRow); } pRow = null; pRecordSet.Close(); ``` 4. 绑定 DataTable到 DataGridView 在窗体加载事件中,将填充好的 DataTable 绑定到 DataGridView 控件,以便于在界面中显示属性数据。代码如下: ```csharp private void AttributeTableFrm_Load(object sender, EventArgs e) { // 填充 DataTable 后,绑定到 DataGridView dataGridView1.DataSource = pDataTable; } ``` 5. 调用并显示属性表窗体 在主程序或其他适当的地方调用这个窗体,显示属性数据表。例如: ```csharp private void ShowAttributeTable(ILayer layer) { AttributeTableFrm attributeTableForm = new AttributeTableFrm(); attributeTableForm.dataGridView1.DataSource = CreateDataTableByLayer(layer, "属性表"); attributeTableForm.ShowDialog(); } ``` 总结: 本文详细介绍了如何使用 ArcGIS Engine 结合 C# 来实现属性数据表的查询和显示。我们创建了一个属性表窗体,包含一个 DataGridView 控件。接着,根据图层的属性字段创建了一个空的 DataTable,并设置了字段属性。然后,通过遍历图层的记录集,将数据填充到 DataTable 中。将 DataTable 绑定到 DataGridView 控件,实现了属性数据的显示。此外,还涉及了数据类型转换以及属性表窗体的显示方法。这个过程展示了如何将 GIS 数据与 .NET 窗体应用相结合,为用户提供交互式的属性查询功能。
- 语静流2019-05-27最后调用的代码好像不全,完全没用
- samtan912013-07-15还可以,可以查询到属性信息
- 「已注销」2014-05-23可能是没弄对,调试半天也没调试成功
- 粉丝: 1
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javaweb的学生学籍管理系统源码+数据库(毕业设计&期末大作业)
- SQL入门学习案例.md
- Java中的`java.util.stream.Collectors.toMap()`方法有什么作用
- 基于flume+kafka+HBase+spark+ElasticSearch的用户轨迹查询大数据开发项目源代码+文档说明
- leetcode java 题解之 Add to Array-Form of Integer.java
- 1111111111111
- 111111111111
- 1111111111111
- leetcode java 题解之 3Sum With Multiplicity.java
- 自动车道居中保持系统的功能安全评估