删除要素
单个要素的删除
private bool DeleteFeature(IFeature pFeature)
{
try
{
var pFeatureClass = pFeature.Class as IFeatureClass;
var pDataset = pFeatureClass as IDataset;
IWorkspace pWorkspace = pDataset.Workspace;
var pWorkspaceEdit = pWorkspace as IWorkspaceEdit;
pWorkspaceEdit.StartEditing(false);
pWorkspaceEdit.StartEditOperation();
pFeature.Delete();
pWorkspaceEdit.StopEditOperation();
pWorkspaceEdit.StopEditing(true);
return true;
}
catch (Exception ex)
{
return false;
}
}
批量要素的删除
SQL语句删除大大提高了执行效率。
private void DeleteData()
{
for (int j = 0; j < arrLayerNameTemp.Length; j++)
{
string strLyrNm = arrLayerNameTemp[j].ToString();
IFeatureClass pFeatureClass = clsDevelopeHelper.GetFeatureClassByName(workspace, strLyrNm);
if (pFeatureClass != null)
{
IQueryFilter QueryFilter = new QueryFilterClass();
if (pFeatureClass.FeatureCount(QueryFilter) > 0)
{
//判断是否支持
//(1)判断是否支持SQL语句
IWorkspaceProperties pWspProperties = workspace asIWorkspaceProperties;
IWorkspaceProperty pWspProperty = pWspProperties.get_Property(esriWorkspacePropertyGroupType.esriWorkspacePropertyGroup,
(int)esriWorkspacePropertyType.esriWorkspacePropCanExecuteSQL);
if (!pWspProperty.IsSupported) return;
//删除数据
IDataset pDataset = pFeatureClass as IDataset;
pDataset.Workspace.ExecuteSQL("delete from " + pDataset.Name);
}
}
}
}
文章出处:http://blog.163.com/liuyang1285@126/blog/#m=0
浙公网安备 33010602011771号