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 开发手册

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

本站QQ群:291616564 麻辣GIS

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

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论