许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ArcEngine连接SDE并读取数据:实现方法

ArcEngine连接SDE并读取数据:实现方法

阅读数 14
点赞 0
article_banner

第一步:创建空数据库

打开SQL Server 2012,新建一个空的数据库,我这里命名为TestGDB
在这里插入图片描述

第二步:建立SDE数据库

打开ArcMap,在ArcToolbox中选择数据管理工具下的地理数据库管理,点击创建企业级地理数据库。
在这里插入图片描述

第三步:配置SDE相关信息

在这里插入图片描述

   1、数据库平台:选择SQL_Server。

   2、 实例 :由于我是在自己电脑上连接,所以可以设置成自己的计算机名,如果是通过自己的电脑连接服务器上的 SDE,则需要设置为服务器的IP。

   3、数据库:填写刚刚新建的空数据库的名称“TestGDB”。

   4、数据库管理员密码:登录SQL Server时的密码。

   5、地理数据库管理员密码:我设置成跟SQL Server登陆的密码一样。

   6、授权文件:打开ArcGIS注册机,选择Server选项卡,Feature选择arcsdeserver, Version  设置为102。(PS:我的是ArcMap10.2,所以是102)点击All按钮,将内容复制到txt文件里,另存为*.ecp文件。选择此*.ecp文件作为授权文件。
在这里插入图片描述

   7、点击确定即可。
在这里插入图片描述

第四步:导入数据

选择数据库连接下的添加数据库连接:
在这里插入图片描述

   弹出如下界面,我这里的实例名还是设置为计算机名,用户名sa,密码就是登陆SQL Server的密码,数据库选择TestGDB,点击确定即可。
在这里插入图片描述

   上述步骤完成后,就可以FileGDB那样导入数据了,这里我导入一个shp文件。
在这里插入图片描述

第五步:利用C#代码读取SDE数据

新建一个 WinForm  工程,在Program.cs文件中加入如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;

namespace WindowsFormsApplication2
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            IAoInitialize m_AoInitialize = new AoInitialize();
            m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

主窗体代码如下;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnLoadData_Click(object sender, EventArgs e)
        {
            // 连接参数
            IPropertySet pPropertySet = new PropertySet();
            pPropertySet.SetProperty("SERVER", "DSF-PC");
            pPropertySet.SetProperty("INSTANCE", "sde:sqlserver:DSF-PC");
            pPropertySet.SetProperty("DATABASE", "TestGDB");
            pPropertySet.SetProperty("USER", "sa");
            pPropertySet.SetProperty("PASSWORD", "123456");
            pPropertySet.SetProperty("VERSION", "sde.Default");

            // 工作空间
            IWorkspaceFactory pWorkspaceFactory = new SdeWorkspaceFactory();
            IWorkspace pWorkspace = pWorkspaceFactory.Open(pPropertySet, 0);

            // 获取数据集
            IEnumDataset pEnumDataset = pWorkspace.get_Datasets(esriDatasetType.esriDTFeatureClass);
            pEnumDataset.Reset();
            IDataset pDataset = pEnumDataset.Next();

            // 遍历数据集
            while (pDataset != null)
            {
                IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
                IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pDataset.Name);
                IFeatureLayer pFeatureLayer = new FeatureLayer();
                pFeatureLayer.FeatureClass = pFeatureClass;
                pFeatureLayer.Name = pFeatureClass.AliasName;
                axMapControl1.AddLayer(pFeatureLayer, 0);
                pDataset = pEnumDataset.Next();
            }

            // 刷新视图
            axMapControl1.ActiveView.Refresh();
        }
    }
}

结果如下:
在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空