介绍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二次开发,如果有不对的地方,请多多包涵!
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
· 协程本质是函数加状态机——零基础深入浅出 C++20 协程
· 编码之道,道心破碎。
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· dotnetty 新的篇章- 开源
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
· 设计模式:简单工厂、工厂方法与抽象工厂
· 用好 JUnit 5 的高级特性:提升单测效率和质量
· 【大数据高并发核心场景实战】 - 数据持久化之冷热分离