云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C#二次开发ArcGIS查询功能

C#二次开发ArcGIS查询功能

  • 62 次阅读
  • 3 次下载
  • 2025/6/6 11:06:19

[地理信息系统课程设计报告]

return;

}

if (txtUserName.Text.Length <= 0) {

MessageBox.Show(\用户名不能为空!\); return;

}

if (txtpwdPassword.Text.Length <= 0) {

MessageBox.Show(\密码不能为空!\); return;

}

SqlHelper.NonQuery(@\ + txtUserName.Text + \ + txtpwdPassword.Text + \);

MessageBox.Show(\恭喜\ + txtUserName.Text + \注册成功!请重新登录\, \注册\); txtUserName.Text = \; txtpwdPassword.Text = \; } } }

2、属性查询源码

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using ESRI.ArcGIS.Controls; using ESRI.ArcGIS.Carto;

using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Display; namespace MyMap {

publicpartialclassAttributeQueryForm : Form {

//存储地图数据

privateAxMapControl mMapControl; privateDataGridView dataGrid;

//存储当前选中图层,IFeatureLayer继承自ILayer privateIFeatureLayer mFeatureLayer;

[地理信息系统课程设计报告]17 / 38

[地理信息系统课程设计报告]

//通过构造函数来传值

public AttributeQueryForm(AxMapControl mapcontrol, DataGridView dataGridView) {

InitializeComponent();

this.mMapControl = mapcontrol; this.dataGrid = dataGridView; }

public AttributeQueryForm() { }

privateint GetLayerindexbyName(string cbolayername) { int i;

for (i = 0; i < mMapControl.LayerCount; i++) {

if (cbolayername == mMapControl.get_Layer(i).Name) break;

} return i; }

privatevoid btnOk_Click(object sender, EventArgs e) {

if (txtValue.Text == \) {

MessageBox.Show(\请输入您要查询什么\); return;

}

//定义图层,要素游标,查询过滤器,要素 IFeatureLayer pFeatureLayer; IFeatureCursor pFeatureCursor; IQueryFilter pQueryFilter;

IFeatureSelection pFeatureSelection; IActiveView activeview; IFeature pFeature; //获取图层

pFeatureLayer = this.mMapControl.Map.get_Layer(GetLayerindexbyName(cboLayer.Text)) asIFeatureLayer;

//如果图层名称不是cboLayer.Text,程序退出 if (pFeatureLayer.Name != cboLayer.Text) return;

//清除上次查询结果

this.mMapControl.Map.ClearSelection();

activeview = this.mMapControl.Map asIActiveView;

//IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass; //pQueryFilter的实例化

[地理信息系统课程设计报告]18 / 38

[地理信息系统课程设计报告]

pQueryFilter = newQueryFilterClass(); //设置查询过滤条件

pQueryFilter.WhereClause = \ + cboField.Text + \ + txtValue.Text + \; //基于查询条件创建指针并回收

pFeatureCursor = pFeatureLayer.Search(pQueryFilter, true); //获取查询到的要素

pFeature = DisplayToDataGridDAL.GetFeature(pFeatureCursor); //获取查询到的要素

pFeatureSelection = pFeatureLayer asIFeatureSelection; //根据查询条件选择要素

pFeatureSelection.SelectFeatures(pQueryFilter,

esriSelectionResultEnum.esriSelectionResultNew, false); //QI到ISelectionSet

ISelectionSet pSelectionSet = pFeatureSelection.SelectionSet; //判断是否获取到要素 if (pFeature!=null) {

//The selection set that defines the subset of features in a selection layer. //ISelectionSet DefinitionSelectionSet { get; }只读属性

IFeatureLayerDefinition pFDefinition = pFeatureLayer asIFeatureLayerDefinition; //创建新图层

IFeatureLayer pNewFeatureLayer = pFDefinition.CreateSelectionLayer(\, true, null, null);

pNewFeatureLayer.Name = \查询结果\; mMapControl.AddLayer(pNewFeatureLayer asILayer); //获取最小外包矩形并放大到当前视图范围

activeview.Extent =pFeature.Shape.Envelope; activeview.Refresh(); } else

{

//没有得到pFeature的提示

MessageBox.Show(\没有找到\ + txtValue.Text, \提示\); return;

}

//把查询到的要素的属性显示到DataGridView中

DisplayToDataGridDAL.Dataview(pFeatureCursor, dataGrid,pFeatureLayer); this.mMapControl.DeleteLayer(0); this.mMapControl.Refresh();

}

privatevoid AttributeQueryForm_Load(object sender, EventArgs e) {

//MapControl中没有图层时返回

if (this.mMapControl.LayerCount <= 0)

[地理信息系统课程设计报告]19 / 38

[地理信息系统课程设计报告]

return;

//获取MapControl中的全部图层名称,并加入ComboBox //图层

ILayer pLayer; //图层名称

string strLayerName;

for (int i = 0; i

pLayer = this.mMapControl.get_Layer(i); strLayerName = pLayer.Name; //图层名称加入cboLayer

this.cboLayer.Items.Add(strLayerName); }

//默认显示第一个选项

this.cboLayer.SelectedIndex = 0;

}

privatevoid cboLayer_SelectedIndexChanged(object sender, EventArgs e) {

this.cboField.Items.Clear(); //获取cboLayer中选中的图层

mFeatureLayer = mMapControl.get_Layer(cboLayer.SelectedIndex) asIFeatureLayer; //要素集合

IFeatureClass pFeatureClass = mFeatureLayer.FeatureClass; //字段名称

string strFldName;

for (int i = 0; i < pFeatureClass.Fields.FieldCount; i++) {

strFldName = pFeatureClass.Fields.get_Field(i).Name; //图层名称加入cboField

this.cboField.Items.Add(strFldName); }

//默认显示第一个选项

this.cboField.SelectedIndex = 0; }

privatevoid btnCancel_Click(object sender, EventArgs e) { this.Close(); } } }

[地理信息系统课程设计报告]20 / 38

搜索更多关于: C#二次开发ArcGIS查询功能 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

[地理信息系统课程设计报告] return; } if (txtUserName.Text.Length <= 0) { MessageBox.Show(\用户名不能为空!\); return; } if (txtpwdPassword.Text.Length <= 0) { MessageBox.Show(\密码不能为空!\); return; } SqlHelper.NonQuery(@\ + txtUserName.Text + \ + txtpwdPassword.Text + \); MessageBox.Show(\

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com