AE+C#通过名称来删除要素类(转)

转载 2013年12月04日 15:53:27

//: 在程序运行中往往有些要素类因为出错而无法删除,这时IDataset.Delete这个方法则无法成功,可以用轻量级的名称对象来完成这个任务。以下为C#+AE10源码。

//删除要素类
public static boolDeleteFeatureDataset(IWorkspace ws, string name)
{
if (ws == null || string.IsNullOrEmpty(name))
{
ErrMsg = “
工作空间或要素类名称不能为空!”;
return false;
}
IFeatureDataset pFeaDataSet;
IEnumDatasetName pEnumDatasetName;
IFeatureWorkspace pFeaWorkspace;
IDatasetName pDatasetName;
try
{
pFeaWorkspace = ws as IFeatureWorkspace;
pEnumDatasetName = ws.get_DatasetNames(esriDatasetType.esriDTFeatureClass ^esriDatasetType.esriDTFeatureDataset);
pEnumDatasetName.Reset();
pDatasetName = pEnumDatasetName.Next();
while (pDatasetName != null)
{
if (pDatasetName.Type == esriDatasetType.esriDTFeatureDataset)
{
//
如果是要素集,则对要素集内的要素类进行查找
IEnumDatasetName pEnumFcName =(pDatasetName as IFeatureDatasetName).FeatureClassNames;
IDatasetName pFcName = pEnumFcName.Next();
while (pFcName != null)
{
if (pFcName.Name.IndexOf(name) >= 0)
{
DeleteByName(pFeaWorkspace, pFcName);
return true;
}
pFcName = pEnumFcName.Next();
}
}
else
{
if (pDatasetName.Name.IndexOf(name) >= 0)
{
DeleteByName(pFeaWorkspace, pDatasetName);
return true;
}
}
pDatasetName = pEnumDatasetName.Next();
}
return false;
}
catch (Exception ex)
{
ErrMsg = ex.Message;
return false;
}
}
//
删除名称对象
public static voidDeleteByName(IFeatureWorkspace pFeaWorkspace, IDatasetName pDatasetName)
{
IFeatureWorkspaceManage pWorkspaceManager = pFeaWorkspace asIFeatureWorkspaceManage;
pWorkspaceManager.DeleteByName(pDatasetName);
}

导入汉字名称的要素类提示ORA-00911: invalid character

操作系统:Linux、ArcSDE10、Oracle11.1.0.6在这种环境下,使用arcCatalog的import工具,导入一个或者多个带有汉字名称的要素类,报如下错误Executing: Fe...

ArcgisEngine+c#二次开发,sde要素类进行GP操作总结

方法一   (注意:主要sde要素类进行gp操作时,需设置gp操作环境,即gp.SetEnvironmentValue("workspace", sWorkPath);所以首先创建并获取本地临时sde...

C#读取shp文件并获取图形保存到sde要素类中(不使用ESRI的类库,纯c#实现)

说明:首先要将sde要素类发布成对应的要素服务,通过对要素服务的操作,实现数据在sde要素类中的增删 //向服务器发出请求 public string getPostData(st...

创建要素类

  • 2013年11月20日 13:01
  • 38KB
  • 下载

ArcSDE for Oracle怎么恢复误删除的要素类和要素

其实并不希望用户都来浏览这篇文章,如果是自己学习还好,如果是出现问题了,可能就比较麻烦了。经常会有用户咨询我们,我不小心删除了ArcSDE里面的相关表,或者删除了相关记录,导致ArcSDE服务、连接、...

arcengine创建要素类、图层的方法

别人写的,感觉不错 ///   2        /// 创建要素类   3        ///   4        /// IWorkspace或者IFeatureDataset...

arcengine 要素类的复制

using System; using System.Collections.Generic; using System.Text; using ESRI.ArcGIS.Geodatabase; us...

MapGIS更改某图层里的简单要素类

郑重声明:此文为本人原创,旨在为参加全国高校GIS技能大赛的同学们以及初学MapGIS的朋友提供一些参考,若有疑问可留言提问,转载请注明出处! 本示例代码实现的功能是:点击某点图层后,进行放大闪烁。...

SDE数据库中的要素类导出到本地文件夹shp文件

/// /// SDE数据库中的要素类导出到本地文件夹 /// /// 要素类 /// 过滤条件 /// 本地文...

ArcGIS 调用GP工具 intersect 裁剪导出要素类

就是用一个图形裁剪导出要素类。最先用Clip工具,后面发现不对,用arcmap测试下,确实不是想要的结果,后面发现用intersect工具可以。但是intersect的参数设置比较不固定,需要进行多番...
  • Mello_
  • Mello_
  • 2014年12月08日 09:04
  • 2521
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AE+C#通过名称来删除要素类(转)
举报原因:
原因补充:

(最多只允许输入30个字)