zoukankan      html  css  js  c++  java
  • ArcEngine数据删除几种方法和性能比较

    转自原文 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);

  • 相关阅读:
    C# 文本,图片 与 Base64的相互转换
    vue3.x 中的自定义组件及使用
    vue 的TodoList 小Demo
    vue中的条件渲染 v-show、v-if、v-else、v-else-if
    vue 使用$refs获取表单内容及v-model双向数据绑定
    python-异常处理&操作数据库&网络编程
    python-接口开发
    python-数据库&邮件
    python-函数和模块
    python-函数&list&dic&集合&文件读取
  • 原文地址:https://www.cnblogs.com/arxive/p/6110155.html
Copyright © 2011-2022 走看看