转ArcEngine数据删除几种方法和性能比较
1、IFeatureCursor 游标查询后,遍历删除
2、更新游标删除IFeatureCursor.DeleteFeature()
3、ITable.DeleteSearchedRows删除
4、 IDataset.Workspace.ExecuteSQL
一、
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);
}
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.
private void Delete4(IFeatureClass PFeatureclass)
4.
private void Delete4(IFeatureClass PFeatureclass)