[地理信息系统课程设计报告]
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
相关推荐: