天天看點

C# 讀取MDB空間資料并加載在地圖視圖

加載控件,連接配接并加載相應功能,如下圖所示

C# 讀取MDB空間資料并加載在地圖視圖
Private void GetDataFromMDBToolStripMenumItem_Click(object sender,EventArgs e)
{
	  IWorkspaceFactory MyWorkSpaceFactory = new AccessWorkspaceFactoryClass();
            IWorkspace MyWorkSpace = MyWorkSpaceFactory.OpenFromFile(@"C:\資料資料等\hzdatabase.mdb", 0);//我的MDB資料庫存放的路徑
            IFeatureWorkspace MyFeatureWorkSpace=MyWorkSpace as IFeatureWorkspace;
            IEnumDataset MyEnum = MyWorkSpace.get_Datasets(esriDatasetType.esriDTAny);
            IDataset MyDataSat = MyEnum.Next();
            while (MyDataSat != null)
            {
                IFeatureDataset MyFeatureDataSat =(IFeatureDataset) MyDataSat;
                if (MyDataSat.Type == esriDatasetType.esriDTFeatureClass)
                {
		//這部分是在視圖中加載不同的圖層
                 IFeatureLayer  FeatureLayer = new FeatureLayerClass();
                         FeatureLayer.FeatureClass = MyFeatureWorkSpace.OpenFeatureClass(DataSat.Name);
                         ILayer  MyLayer = FeatureLayer as ILayer;
                         MyLayer.Name = MyDataSat.Name;
                        axMapControl1.Map.AddLayer(MyLayer);
                        MyDataSat = MyDataSatEnum.Next();                         }
                else if (MyDataSat.Type == esriDatasetType.esriDTFeatureDataset)
                {
                    IEnumDataset DataSatEnum = MyDataSat.Subsets;
                    IDataset DataSat = DataSatEnum.Next();
                   while (DataSat != null)
                    {
                       IFeatureLayer MyFeatureLayer = new FeatureLayerClass();
                         MyFeatureLayer.FeatureClass = MyFeatureWorkSpace.OpenFeatureClass(DataSat.Name);
                         ILayer Layer = MyFeatureLayer as ILayer;
                         Layer.Name = DataSat.Name;
                        axMapControl1.Map.AddLayer(Layer);
                        DataSat = DataSatEnum.Next();                    }
                }
                MyDataSat = MyEnum.Next();               
            }
}
      

F5運作,結果如下圖:

C# 讀取MDB空間資料并加載在地圖視圖