ArcEngine数据删除几种方法和性能比较
来源:互联网 发布:faker哭了知乎 编辑:程序博客网 时间:2024/06/05 19:55
转载连接:http://www.cnblogs.com/willwayer/archive/2011/04/29/2032491.html
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)