zoukankan      html  css  js  c++  java
  • c# AE 通过名称删除要素类

    转载:http://blog.csdn.net/lysc_forever/article/details/7790219#

     1 //注: 在程序运行中往往有些要素类因为出错而无法删除,这时IDataset.Delete这个方法则无法成功,可以用轻量级的名称对象来完成这个任务。以下为C#+AE10源码。
     2 
     3 //删除要素类
     4         public static bool DeleteFeatureDataset(IWorkspace ws, string name)
     5         {
     6             if (ws == null || string.IsNullOrEmpty(name))
     7             {
     8                 ErrMsg = "工作空间或要素类名称不能为空!";
     9                 return false;
    10             }
    11             IFeatureDataset pFeaDataSet;
    12             IEnumDatasetName pEnumDatasetName;
    13             IFeatureWorkspace pFeaWorkspace;
    14             IDatasetName pDatasetName;
    15             try
    16             {
    17                 pFeaWorkspace = ws as IFeatureWorkspace;
    18                 pEnumDatasetName = ws.get_DatasetNames(esriDatasetType.esriDTFeatureClass ^ esriDatasetType.esriDTFeatureDataset);
    19                 pEnumDatasetName.Reset();
    20                 pDatasetName = pEnumDatasetName.Next();
    21                 while (pDatasetName != null)
    22                 {
    23                     if (pDatasetName.Type == esriDatasetType.esriDTFeatureDataset)
    24                     {
    25                         //如果是要素集,则对要素集内的要素类进行查找
    26                         IEnumDatasetName pEnumFcName = (pDatasetName as IFeatureDatasetName).FeatureClassNames;
    27                         IDatasetName pFcName = pEnumFcName.Next();
    28                         while (pFcName != null)
    29                         {
    30                             if (pFcName.Name.IndexOf(name) >= 0)
    31                             {
    32                                 DeleteByName(pFeaWorkspace, pFcName);
    33                                 return true;
    34                             }
    35                             pFcName = pEnumFcName.Next();
    36                         }
    37                     }
    38                     else
    39                     {
    40                         if (pDatasetName.Name.IndexOf(name) >= 0)
    41                         {
    42                             DeleteByName(pFeaWorkspace, pDatasetName);
    43                             return true;
    44                         }
    45                     }
    46                     pDatasetName = pEnumDatasetName.Next();
    47                 }
    48                 return false;
    49             }
    50             catch (Exception ex)
    51             {
    52                 ErrMsg = ex.Message;
    53                 return false;
    54             }
    55         }
    56         //删除名称对象
    57         public static void DeleteByName(IFeatureWorkspace pFeaWorkspace, IDatasetName pDatasetName)
    58         {
    59             IFeatureWorkspaceManage pWorkspaceManager = pFeaWorkspace as IFeatureWorkspaceManage;
    60             pWorkspaceManager.DeleteByName(pDatasetName);
    61         }

  • 相关阅读:
    MyEclipse安装Freemarker插件
    C# winform webbrowser如何指定内核
    tfs清除服务器印射
    在sql中怎样把int行转化成我想要的格式,比如把1转化为'001',
    为项目加入npoi
    .net邮件错误 :The specified string is not in the form required for a subject.
    C#编程总结(十)字符转码
    ,字符串,列表,元组,字典
    简单登录,编码解码,
    密码*** ,continue,等差求和
  • 原文地址:https://www.cnblogs.com/marvelousone/p/7464160.html
Copyright © 2011-2022 走看看