zoukankan      html  css  js  c++  java
  • 介绍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二次开发,如果有不对的地方,请多多包涵!

  • 相关阅读:
    随笔
    转:windows 下 netsh 实现 端口映射(端口转发)
    2015年01月01日:新年第一天:happy new year to myself
    谨记一次问题排查经历
    新机器,分区为NTFS, 安装 Windows XP、Windows Server 2003 时蓝屏问题,修改为 FAT32 即可
    Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】
    Cursor for loop in Oracle
    Oracle date 详解
    oracle中to_timestamp和to_date什么区别
    Oracle FM FM09999999 确保8位数字 即使全是0
  • 原文地址:https://www.cnblogs.com/edcoder/p/11718785.html
Copyright © 2011-2022 走看看