基于AE的个人地理数据库(mdb格式)导入到企业级数据库(sde数据库中)中(C#)[原创] - 圣殿GIS

njlhb 2021-08-06 原文


基于AE的个人地理数据库(mdb格式)导入到企业级数据库(sde数据库中)中(C#)[原创]

  基于AE的个人地理数据库(mdb格式)导入到企业级数据库(sde数据库中,采用Oracle数据库)中(C#).

个人地理数据库有数据集,导入到企业级数据库后没有数据集,只有要素类。

private void btnPGD2EGD_Click(object sender, EventArgs e)
        {
            try
            {
                string pWorkspaceName = strName;
                string sdeUser = pSDEwsp.ConnectionProperties.GetProperty(“USER”).ToString();
                IWorkspaceFactory pMDBwspf = new AccessWorkspaceFactoryClass();
                pMDBwsp = pMDBwspf.OpenFromFile(pWorkspaceName, 0);
                Cursor = Cursors.WaitCursor;
                if (pSDEwsp != null)
                {
                    //progressBar.Visible = true;
                    DataVonverter(ref pMDBwsp, ref pSDEwsp, sdeUser);//数据导入
                    progressBar.Visible = false;
                }

                Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            MessageBox.Show(“mdb数据上传SDE库成功!”, “数据导入”, MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Close();
           
        }

  public void DataVonverter(ref IWorkspace FromWorkspace, ref IWorkspace ToWorkspace,string SDEUser)
        {
            if (SDEUser == “”) return;
            IFeatureWorkspace pOutFeatureWorkspace;
            IFeatureWorkspace pInFeatureWorkspace;
            IFeatureClass pFeatureClass;
            IFeatureClass pOutFeatureClass;
            IWorkspace2 pWorkspace2;
            IEnumDataset pEnumDataset;
            IDataset pOutDataset;

            IFeatureDataset pOutFeatureDataset;
            IEnumFeatureClass pEnumFeatureClass;
            IFeatureClassContainer pFeatureclassContainer;

            pOutFeatureWorkspace = (IFeatureWorkspace)ToWorkspace;
            pInFeatureWorkspace = (IFeatureWorkspace)FromWorkspace;
            pWorkspace2 = (IWorkspace2)ToWorkspace;

            pEnumDataset = (IEnumDataset)FromWorkspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);//获得MDB端的所有数据集
            pOutDataset = (IDataset)pEnumDataset.Next();

            while (pOutDataset != null)//遍历数据集
            {
                pOutFeatureDataset = (IFeatureDataset)pOutDataset;
                if (pOutFeatureDataset != null)
                {
                    pFeatureclassContainer = (IFeatureClassContainer)pOutFeatureDataset;
                    pEnumFeatureClass = (IEnumFeatureClass)pFeatureclassContainer.Classes;
                    pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
                    while (pFeatureClass != null)//在每一个数据集中遍历数据层IFeatureClass
                    {
                        if (!pFeatureClass.AliasName.Contains(“UnClassfied”))
                        {
                            if (pWorkspace2.get_NameExists(esriDatasetType.esriDTFeatureClass, SDEUser + “.” + pFeatureClass.AliasName))
                            {
                                pOutFeatureClass = pOutFeatureWorkspace.OpenFeatureClass(SDEUser + “.” + pFeatureClass.AliasName);
                                fc2fc(ref pFeatureClass, ref pOutFeatureClass);
                            }
                            else
                            {
                                fc2fc(ref pFeatureClass, ref ToWorkspace);
                            }
                        }
                        pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
                    }
                }
                pOutDataset = (IDataset)pEnumDataset.Next();
            }

            ITable pInTable;
            pInTable = pInFeatureWorkspace.OpenTable(“AIndexInfo”);
            //如果SDE数据库中已经有AIndexInfo表,则将新的记录追加进去
            if (pWorkspace2.get_NameExists(esriDatasetType.esriDTTable, SDEUser + “.” + “AIndexInfo”))
            {
                ITable pOutTable = pOutFeatureWorkspace.OpenTable(“AIndexInfo”);
                FusedIndexTable(ref pInTable, ref pOutTable);
            }
            else//如果SDE数据库中没有AIndexInfo表,则重新生成和来源端一样的AIndexInfo表
            {
                FusedIndexTable(ref pInTable, ref ToWorkspace);
            }
        }

转载时,请注明出处:http://www.cnblogs.com/njlhb/archive/2007/06/17/786242.html 和作者:GIS云中鹤


 
发表于
2007-06-17 10:08 
圣殿GIS 
阅读(4806
评论(5
编辑 
收藏 
举报

 

版权声明:本文为njlhb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/njlhb/archive/2007/06/31/786242.html

基于AE的个人地理数据库(mdb格式)导入到企业级数据库(sde数据库中)中(C#)[原创] - 圣殿GIS的更多相关文章

  1. 【WPF on .NET Core 3.0】 Stylet演示项目 – 简易图书管理系统(3) – 使用Conductor切换页面

    前两章中, 我们已经实现了这个图书管理系统的登录窗口, 并实施了完善的单元测试. 该是时候回过头来关注我们的主 […]...

  2. 离线将CentOS系统从 7.2版本升级至7.5版本 – xzwlq

    离线将CentOS系统从 7.2版本升级至7.5版本 1.查看系统版本   操作命令 cat /etc/cen […]...

  3. 基于CWMP(TR069)协议ACS服务器的搭建 – thinkinglife

    基于CWMP(TR069)协议ACS服务器的搭建 linux系统上的设备维护解决方案,设备维护自动化早已成为时 […]...

  4. IES.PetroMod.v9.0(德国石油勘探模拟软件) – jzt

    IES.PetroMod.v9.0(德国石油勘探模拟软件) soft\42\Geosoft Oasis.Mon […]...

  5. .NET平台微服务项目汇集 – SuperSnowYao

    .NET平台微服务项目汇集 最近博客园出现了一篇文章《微服务时代之2017年五军之战:Net PHP谁先死》, […]...

  6. C# 多维数组 交错数组的区别,即 [ , ] 与 [ ][ ]的区别

    多维数组的声明 在声明时,必须指定数组的长度,格式为 type [lenght ,lenght ,lengh, […]...

  7. Oracle官方文档在线查看 – abce

    Oracle官方文档在线查看 2016-07-22 09:00  abce  阅读(756)  评论(0)  […]...

  8. 敏捷软件开发模型–SCRUM – Ring

    敏捷软件开发模型–SCRUM 一 什么是Scrum?Scrum (英式橄榄球争球队), 软件开发模 […]...

随机推荐

  1. 个人博客开发之blog-api项目统一结果集api封装

    前言 由于返回json api 格式接口,所以我们需要通过java bean封装一个统一数据返回格式,便于和前 […]...

  2. 破坏之王DDoS攻击与防范深度剖析【学习笔记】

    最近在学习DDoS攻击相关的知识,《破坏之王DDoS攻击与防范深度剖析》这本书深入浅出的介绍了DDoS的起源、 […]...

  3. 深入探究ASP.NET Core Startup初始化

    前言     Startup类相信大家都比较熟悉,在我们使用ASP.NET Core开发过程中经常用到的类,我 […]...

  4. 数列分段–二分答案

    洛谷原题 p1182数列分段 是刚学二分答案的弱鸡 不是因为刷最短路的时候碰到通往奥格瑞玛的道路才来学二分的 […]...

  5. 常用流行的前端框架

    一、Ant Design 网站链接:https://ant.design/index-cn   蚂蚁金服出品, […]...

  6. 电脑手机端如何互传文件、图片、网址等

    1、AirDroid 我的第一感觉就是AirDroid,手机安装APP,然后访问网页端之后,就可以直接访问手机 […]...

  7. ios自动布局优秀框架总结

    1、PureLayout最终的API为iOS和OS X自动布局-令人印象深刻的简单,非常强大。PureLayout扩展了UIView/NSView, NSArray和NSLayoutConstraint,使用了一个全面的自动布局API,...

  8. 大数据技术之_06_Zookeeper学习_Zookeeper入门+Zookeeper安装+Zookeeper内部原理+Zookeeper实战(开发重点)+企业面试真题

    第1章 Zookeeper入门1.1 概述1.2 特点1.3 数据结构1.4 应用场景1.5 下载地址第2章 […]...

展开目录

目录导航