您的位置:首页 > 编程语言 > C#

C#+AE要素的操作,添加、更新和删除要素

2013-10-13 20:32 417 查看
开发环境:VS2010+ArcObject10.1

功能介绍:C#+AE对要素的操作,包括添加要素,查找特定的要素并更新要素、删除要素。

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.Carto;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Display;

namespace Test_FieldsQuery
{
public partial class Form1 : Form
{
ILayer pLayer1;
IFeatureLayer pFeatureLayer1;
IFeatureClass pFeatureClass1;

ILayer pLayer;
IFeatureLayer pFeatureLayer;
IFeatureClass pFeatureClass;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
axMapControl1.AddShapeFile("数据\\", "AsiaCities_new.shp");
axMapControl1.AddShapeFile("数据\\", "AsiaCities_old.shp");

pLayer1 = axMapControl1.get_Layer(1);
pFeatureLayer1 = pLayer1 as IFeatureLayer;
pFeatureClass1 = pFeatureLayer1.FeatureClass;

pLayer = axMapControl1.get_Layer(0);
pFeatureLayer = pLayer as IFeatureLayer;
pFeatureClass = pFeatureLayer.FeatureClass;
}

#region 添加、更新和删除要素对象的操作
private void button4_Click(object sender, EventArgs e)
{
AddRow(pFeatureClass1);
}

private void button2_Click(object sender, EventArgs e)
{
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = "\"FIRST_CONT\" = 'esri'";
IFeatureCursor pFeatureCursor = pFeatureClass1.Search(pQueryFilter, false);
IFeature pFeature = pFeatureCursor.NextFeature();

UpdateRow(pFeatureClass1, pFeature);
}

private void button3_Click(object sender, EventArgs e)
{
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = "\"FIRST_CONT\" = 'esriChina'";
IFeatureCursor pFeatureCursor = pFeatureClass1.Search(pQueryFilter, false);
IFeature pFeature = pFeatureCursor.NextFeature();

DeleteRow(pFeatureClass1, pFeature);
}
/// <summary>
/// 添加要素
/// </summary>
/// <param name="pFeatureClass">要素类</param>
private void AddRow(IFeatureClass pFeatureClass)
{
ITable pTable = pFeatureClass as ITable;
IRow pRow;
int i = pTable.FindField("FIRST_CONT");
//添加记录
pRow = pTable.CreateRow();
pRow.set_Value(i, "esri");//设置属性值
pRow.Store();
}
/// <summary>
/// 更新要素
/// </summary>
/// <param name="pFeatureClass">要素类</param>
/// <param name="pFeature">要更新的要素</param>
private void UpdateRow(IFeatureClass pFeatureClass, IFeature pFeature)
{
ITable pTable = pFeatureClass as ITable;
IRow pRow;
int i = pTable.FindField("FIRST_CONT");
//更新记录
pRow = pTable.GetRow(pFeature.OID);
pRow.set_Value(i, "esriChina");
pRow.Store();
}
/// <summary>
/// 删除要素
/// </summary>
/// <param name="pFeatureClass">要素类</param>
/// <param name="pFeature">要删除的要素</param>
private void DeleteRow(IFeatureClass pFeatureClass, IFeature pFeature)
{
ITable pTable = pFeatureClass as ITable;
IRow pRow;
//删除记录
pRow = pTable.GetRow(pFeature.OID);
pRow.Delete();
}
#endregion
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐