转自原文 ArcEngine数据删除几种方法和性能比较

一、  几种删除方法代码

1.  查询结果中删除

private void Delete1(IFeatureClass PFeatureclass)

{

IQueryFilter pQueryFilter = new QueryFilterClass();

pQueryFilter.WhereClause = "objectID<=" + DeleteNum;

IFeatureCursor pFeatureCursor = PFeatureclass.Search(pQueryFilter, false);IFeature pFeature = pFeatureCursor.NextFeature();

while (pFeature != null)

{

pFeature.Delete();

pFeature = pFeatureCursor.NextFeature();

}

System.Runtime.InteropServices.Marshal.ReleaseComObject(pQueryFilter);

}

2.  更新游标删除

private void Delete2(IFeatureClass PFeatureclass)

{

IQueryFilter pQueryFilter = new QueryFilterClass();

pQueryFilter.WhereClause = "objectID<=" + DeleteNum;

IFeatureCursor pFeatureCursor = PFeatureclass.Update(pQueryFilter, false);

IFeature pFeature = pFeatureCursor.NextFeature();

while (pFeature != null)

{

pFeatureCursor.DeleteFeature();

pFeature = pFeatureCursor.NextFeature();

}

System.Runtime.InteropServices.Marshal.ReleaseComObject(pQueryFilter);

}

3.  使用DeleteSearchedRows删除

private void Delete4(IFeatureClass PFeatureclass)

{

IQueryFilter pQueryFilter = new QueryFilterClass();

pQueryFilter.WhereClause = "objectID<=" + DeleteNum;

ITable pTable = PFeatureclass as ITable;

pTable.DeleteSearchedRows(pQueryFilter);

System.Runtime.InteropServices.Marshal.ReleaseComObject(pQueryFilter);

}

 

4.  ExecuteSQL删除

private void Delete4(IFeatureClass PFeatureclass)

{

IDataset pDataset = PFeatureclass as IDataset;

pDataset.Workspace.ExecuteSQL("delete from " + PFeatureclass.AliasName + " where objectid<=" + DeleteNum);

}

二、  测试性能和比较

1 相同的数据条件,删除2000条记录

2 测试代码

IFeatureLayer pFeatureLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;

IFeatureClass PFeatureClass = pFeatureLayer.FeatureClass;

System.Diagnostics.Stopwatch MyWatch = new System.Diagnostics.Stopwatch();

MyWatch.Start();

Delete1(PFeatureClass)

//Delete2(PFeatureClass);

//Delete3(PFeatureClass);

//Delete4(PFeatureClass);

ArcEngine数据删除几种方法和性能比较的更多相关文章

  1. ArcEngine数据删除几种方法和性能比较[转]

    四个解决方案: 1.IFeatureCursor 游标查询后,遍历删除 2.更新游标删除IFeatureCursor.DeleteFeature() 3.ITable.DeleteSearchedRo ...

  2. MySQL查询随机数据的4种方法和性能对比

    从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点. ...

  3. python获取字母在字母表对应位置的几种方法及性能对比较

    python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...

  4. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法-发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Ins ...

  5. SQL 2005批量插入数据的二种方法

    SQL 2005批量插入数据的二种方法 Posted on 2010-07-22 18:13 moss_tan_jun 阅读(2635) 评论(2) 编辑 收藏 在SQL Server 中插入一条数据 ...

  6. PHP获取POST数据的几种方法汇总

    一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...

  7. 关于iOS去除数组中重复数据的几种方法

    关于iOS去除数组中重复数据的几种方法   在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...

  8. PHP生成随机密码的4种方法及性能对比

    PHP生成随机密码的4种方法及性能对比 http://www.php100.com/html/it/biancheng/2015/0422/8926.html 来源:露兜博客   时间:2015-04 ...

  9. Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

随机推荐

  1. 跨域使用onmessage实现方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 关于cook操作

    http://www.cnblogs.com/fishtreeyu/archive/2011/10/06/2200280.html

  3. element-ui一些注意点:

    1.change ($event,“你要传递的其他值”),使用el-select组件时,想传递多个值. 或者 在el-option上的value属性上传递对象 eg: :value="{'c ...

  4. ifup&&ifdown --- 激活/关闭指定的网络接口。

    ifup命令用于激活指定的网络接口. ifup eth0 #激活eth0 ifdown命令用于禁用指定的网络接口. ifdown eth0 #禁用eth0

  5. JavaScript学习总结(11)——JS常用函数(二)

    37. getElementsByClassName ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function getElementsByClassName( ...

  6. 洛谷 P1105 平台

    P1105 平台 题目描述 空间中有一些平台.给出每个平台的位置,请你计算从每一个平台的边缘落下之后会落到哪一个平台上.注意,如果某两个平台的某个两边缘横坐标相同,物体从上面那个平台落下之后将不会落在 ...

  7. Directx9.0 学习教程3 -图形学之创建点 线 三角形 等

    1.首先 介绍点的表示方法 struct CUSTOMVERTEX { float x,y,z; }; CUSTOMVERTEX Vertices[] = { {-5.0, -5.0, 0.0}, { ...

  8. js---15,模拟数组的ecah方法

    原型的另外一个作用就是扩展对象中的属性和方法的 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http:// ...

  9. 利用日志使管理Linux更轻松

    利用日志使管理Linux更轻松 操作系统的日志主要具有审计与监测的功能,通过对日志信息的分析,可以检查错误发生的原因,监测追踪入侵者及受到攻击时留下的痕迹,甚至还能实时的进行系统状态的监控.有效利用日 ...

  10. Android 打造属于自己的RxBus

    RxBus 通过RxJava实现Rxbus. 相信大家已经非常熟悉EventBus了.最近正在学习Rxjava,如果在项目中已经使用了Rxjava,使用RxBus来代替EventBus应该是不错的选择 ...