『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

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

ArcGIS Engine 10 开发手册(4-4)获取数据库中的要素类
在 ArcGIS Engine 中,要得到某一个类,首要要获取工作空间,然后进入工作空间再得到相应的东西,也就是以下两个步骤:

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

 

 

 

      获取工作空间;

      获取相应的要素类。

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

 

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 ();

}

效果如下:

 

      京ICP备08100627号-22 京公网安备 11010802030428号