GIS資料的查詢,插入,刪除,更新(ArcEngine)
1 、 查詢資料
1 )、利用FeaturCursor 進行空間查詢
// 利用構造的Envelope (矩形框),查詢和Envelope 相交的FeatureClass 的要素集
// 結果資料利用迴圈FeatureCursor.nextFeature 獲得
IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(508786, 681196, 513033, 684341);
// 空間查詢
ISpatialFilter spatialFilter = new SpatialFilterClass();
spatialFilter.Geometry = envelope;
String shpFld = featureClass.ShapeFieldName;
spatialFilter.GeometryField = shpFld;
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;// 相交
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter = (IQueryFilter)spatialFilter;
IFeatureCursor searchCursor = featureClass.Search(queryFilter, true);
IFeature feature = searchCursor.NextFeature();
int n = 0;
while (feature != null){
n++;
feature = baseCursor.NextFeature();
}
2 )、利用FeatureCursor 在選擇集中進行查詢
IFeatureSelection pFeatureSelectio = pFeatureLayer as IFeatureSelection;
ICursor ppCursor;
pFeatureSelectio.SelectionSet.Search(null, false, out ppCursor);
IFeatureCursor pFeatureCursor = ppCursor as IFeatureCursor;
IFeature pFeature = pFeatureCursor.NextFeature();
3 )、利用FeatureCursor 進行屬性查詢
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = "PROJECTCODE = '" + this.ProjectNumTextBox.Text.Trim() + "'";
IFeatureCursor pFeatureCursor = LineFeaClass.Search(pQueryFilter, false);
IFeature pFeatureIfExit = pFeatureCursor.NextFeature();
2 、 插入資料
1 )、利用 Insert Cursors 和 featureBuffer
IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
IFeatureCursor featureCursor = featureClass.Insert( true);
object featureOID;
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "B Pierce");
for ( int ic = 0; ic < 99; ic++)
{
featureBuffer.Shape = geometry;
featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "K Johnston");
for ( int ic = 0; ic < 99; ic++)
{
featureBuffer.Shape = geometry
featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureCursor.Flush();
2 )、直接進行資料插入(Feature.Store 方法)
IFeature newLineFeature = LineFeaClass.CreateFeature();
newLineFeature.Shape = pFeature.Shape;
int ii = newLineFeature.Fields.FindField(AreaZonalName);
if (ii > 0)
{
newLineFeature.set_Value(ii,
this.AnalysAreaComboBox.Text.Trim());
}
newLineFeature.Store();
3 、 資料刪除 delete
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'R'";
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);
IFeature feature = updateCursor.NextFeature();
int m = 0;
while (feature != null)
{
m++;
updateCursor.DeleteFeature(feature);
feature = updateCursor.NextFeature();
}
4 、 資料更新 update
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");
// 屬性查詢
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'U'";
// 利用FeatureCursor 進行資料更新
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);
int fieldindex = featureClass.FindField("ZONING_S");
IFeature feature = updateCursor.NextFeature();
int m = 0;
while (feature != null)
{
m++;
feature.set_Value(fieldindex, "X");
updateCursor.UpdateFeature(feature);
feature = updateCursor.NextFeature();
}
相關文章
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- 簡單查詢、插入、更新、刪除SQL語句SQL
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- 二叉查詢樹的插入刪除查詢
- MySQL(四) 資料表的插入、更新、刪除資料MySql
- 回閃查詢查詢刪除的資料
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫
- 使用 MERGE 插入、更新和刪除資料
- kettle 實時同步資料(插入/更新/刪除資料)
- 第15 16課 資料的插入更新和刪除
- AVL樹(查詢、插入、刪除)——C語言C語言
- 二叉排序樹查詢,插入,刪除排序
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- mysql 資料插入和更新及刪除詳情FSSHMySql
- mysql 跨表查詢、更新、刪除示例MySql
- MongoDB 集合的插入、更新、刪除操作MongoDB
- 插入查詢資料的操作
- oracle重複資料的查詢及刪除Oracle
- hibernateHQl批量插入、刪除、更新
- SQL Cookbook—插入、更新與刪除SQL
- 閃回查詢找到誤刪除資料
- 雙向連結串列————查詢、刪除、插入結點
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- mysql根據查詢結果批量更新多條資料(插入或更新)MySql
- CnosDB的資料更新和刪除
- 查詢陣列裡資料刪除和增加的方法陣列
- 使用閃回查詢恢復誤刪除的資料
- mysql刪除查詢MySql
- 【資料結構】——搜尋二叉樹的插入,查詢和刪除(遞迴&非遞迴)資料結構二叉樹遞迴
- Oracle閃回查詢恢復delete刪除資料Oracledelete
- oracle 查詢及刪除表中重複資料Oracle
- mysql 查詢及 刪除表中重複資料MySql
- 連結串列基本操作(建立,插入,查詢,刪除)-C語言C語言
- 單向迴圈連結串列——查詢、刪除、插入結點
- DML(Data Manipulation Language、資料操作語言),用於新增、刪除、更新和查詢資料庫記資料庫
- sql查詢案例:刪除2條完全一樣的資料SQL
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- 工作隨筆——mysql子查詢刪除原表資料MySql