麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

ArcGIS Engine 10 开发手册(4-4)获取数据库中的要素类

在 ArcGIS Engine 中,要得到某一个类,首要要获取工作空间,然后进入工作空间再得到相应的东西,也就是以下两个步骤:

  1. 获取工作空间;
  2. 获取相应的要素类。

我们定义一个函数用来获取个人数据库的路径

public string WsPath () {
  string WsFileName = "";
  OpenFileDialog OpenFile = new OpenFileDialog ();
  OpenFile.Filter = "个人数据库(MDB)|*.mdb";
  DialogResult DialogR = OpenFile.ShowDialog ();
  if (DialogR == DialogResult.Cancel)
  {

  } else
  {
    WsFileName = OpenFile.FileName;
  }
  return WsFileName;
}

要获取要素类,首先获取工作空间,然后对工作空间中的要素类进行遍历,代码如下:

private void button2_Click (object sender, EventArgs e)
{
  string WsName = WsPath ();
  if (WsName != "")
  {
    IWorkspaceFactory pWsFt = new AccessWorkspaceFactoryClass ();
    IWorkspace pWs = pWsFt.OpenFromFile (WsName, 0);
    IEnumDataset pEDataset = pWs.get_Datasets (esriDatasetType.esriDTAny);
    IDataset pDataset = pEDataset.Next ();
    while (pDataset != null)
    {
      if (pDataset.Type == esriDatasetType.esriDTFeatureClass)
      {
        FeatureClassBox.Items.Add (pDataset.Name);
      }
      //如果是数据集
      else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset)
      {
        IEnumDataset pESubDataset = pDataset.Subsets;
        IDataset pSubDataset = pESubDataset.Next ();
        while (pSubDataset != null)
        {
          FeatureClassBox.Items.Add (pSubDataset.Name);
          pSubDataset = pESubDataset.Next ();
        }
      }
      pDataset = pEDataset.Next ();
    }
  }

  FeatureClassBox.Text = FeatureClassBox.Items[0].ToString ();
}

效果如下:

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

已有 2 条评论

  1. 麻辣GIS-aaa
    1#
    aaa  · 2020-07-06 17:08

    当subdataSet中有拓扑图层的时候,在IDataset pSubDataset = pESubDataset.Next ();会异常,啥情况

发表评论