介紹ArcGIS中各種數據的打開方法——mdb(個人數據庫)


3、打開存儲在Access GeoDatabase的要素類

使用工作空間打開一個Access庫中的一個要素類。

private void OpenWorkspaceFromFileAccess(string clsName, string DBPath)

 

定義函數OpenWorkspaceFromFileAccess,輸入參數包括要素類名和該數據庫文件所在的路徑,返回值為打開該要素類獲得的要素對象FeatureClass。

 

介紹一種方法

#region 打開個人數據庫中的要素
        private void 打開個人數據庫中的要素toolStripLabel2_Click(object sender, EventArgs e)
        {

            //方法:
            AddMDBFile();
        }
        /// <summary>
        /// 方法:使用工作空間打開一個Access庫中的一個要素類
        /// </summary>
        private void AddMDBFile()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "打開個人數據庫";
            ofd.Filter = "Personal GDB(*.mdb)|*.mdb";
            ofd.InitialDirectory = m_Path;
            if (ofd.ShowDialog() != DialogResult.OK)
                return;
            string DBPath = ofd.FileName;
            OpenWorkspaceFromFileAccess("廣西師范學院平面圖", DBPath);
        }
        /// <summary>
        /// 方法補充:使用工作空間打開一個Access庫中的一個要素類
        /// </summary>
        /// <param name="clsName">文件名</param>
        /// <param name="DBPath">文件路徑</param>
        private void OpenWorkspaceFromFileAccess(string clsName, string DBPath)
        {
            //排除沒有打開指定數據的情況
            if(DBPath!=m_Path+"\\Access.mdb")
            {
                MessageBox.Show("請打開指定數據庫!");
                return;
            }
            //新建一個Access的工作空間工廠
            IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
            IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(DBPath, 0);
            IFeatureWorkspace pAccessWorkspace=pWorkspace as IFeatureWorkspace;
            IFeatureClass pFeatureClass = pAccessWorkspace.OpenFeatureClass(clsName);
            IFeatureLayer pFLayer = new FeatureLayerClass();
            pFLayer.FeatureClass = pFeatureClass;
            pFLayer.Name = clsName;
            this.axMapControl1.AddLayer(pFLayer);
            this.axMapControl1.Refresh();
        }
        #endregion

 

小提示:

AccessWorkspaceFactoryClass 需要引用using ESRI.ArcGIS.DataSourcesGDB;

 

謝謝觀看!本人初學GIS二次開發,如果有不對的地方,請多多包涵!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM