AE+C#如何创建和使用.sde连接

原创 2013年12月05日 10:43:05

我们通过ArcCatalog工具连接ArcSDE管理的空间数据库的时候,都会在ArcCatalog中建立一个.sde文件,该文件为一个空间数据库连接文件,有了这个文件可以直接连接到空间数据库中去,那么在ArcEngine中是如何建立和使用这个.sde文件的呢?

 

 

以下为通过AE+C#建立和使用.sde文件的代码示例

 

                //声明临时路径

                string path = @"d:\temp";

                // 声明临时.sde文件名称

                string sdeName = @"localhost.sde";

                string sdePath = path + "\\" + sdeName;
            
   // 如果已经存在了,则删除了重新创建

                if (File.Exists(sdePath))

                {

                    File.Delete(sdePath);

                }

                IWorkspaceFactory workspaceFactory = newSdeWorkspaceFactoryClass();

                // 创建.sde文件

                IWorkspaceName workspaceName =workspaceFactory.Create(path, sdeName, ConnectSDE(true), 0);

               // 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了

                IWorkspace pWorkspace =workspaceFactory.OpenFromFile(sdePath, 0);

 

其中ConnectSDE(true)为获取IPropertySet接口的函数,样例代码如下

 

        ///<summary>

        ///设置SDE连接属性

        ///</summary>

        ///<paramname="ChkSdeLinkModle"></param>

        ///<returns>IPropertySet</returns>

        publicstaticIPropertySet ConnectSDE(bool ChkSdeLinkModle)

        {

            //定义一个属性

            IPropertySet Propset = newPropertySetClass();

            if (ChkSdeLinkModle == true) //采用SDE连接

            {

                //设置数据库服务器名

               Propset.SetProperty("SERVER", "192.168.1.149");

                //设置SDE的端口,这是安装时指定的,默认安装时"port:5151"

               Propset.SetProperty("INSTANCE", "port:5151");

                //SDE的用户名

               Propset.SetProperty("USER", "sde");

                //密码

               Propset.SetProperty("PASSWORD", "sde");

                //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置

               Propset.SetProperty("DATABASE", "orcl");

                //SDE的版本,在这为默认版本

               Propset.SetProperty("VERSION", "SDE.DEFAULT");

            }

            else//直接连接

            {

                //设置数据库服务器名,如果是本机可以用"sde:sqlserver:.",直接连接会弹出选择数据库对话框,要求填入用户名密码

               Propset.SetProperty("INSTANCE", "sde:sqlserver:xxsde");

            }

            return Propset;

        }

 

AE连接SDE读取数据

private void 连接数据库ToolStripMenuItem_Click(object sender, EventArgs e)         {             //定义工作...
  • sinat_32349327
  • sinat_32349327
  • 2016年10月26日 09:19
  • 566

ArcEngine 访问 直连方式Oracle11g SDE10.1

you因为采取直连的方式,我们并不需要SDE为我们建立表什么的,如果想要建立SDE数据库,我们直接用ArcMap里面的工具创建即可,因此采用直连方式连接数据库,并不需要安装ArcSDE!!!...
  • wordtopzerg
  • wordtopzerg
  • 2014年05月15日 17:38
  • 2356

直连sde出错解决方案——通过创建sde文件连接

虽然Arcgis10.0以后版本中提供了直连sde数据库的入口,但是在实际操作中会遇到以下问题( 包括但不限于): 电脑环境32位,64位问题SDE数据库版本问题,桌面端arcmap软件10.0...
  • sRhee
  • sRhee
  • 2017年06月20日 17:37
  • 262

ArcSde的两种连接方式、区别

使用数据库管理系统中的空间数据需要一个数据库连接。建立空间数据的连接有两种方法。 ArcSDE数据库连接方法 一、ArcCatalog中空间数据库连接方法:下面以基于Oracle 10g的ArcS...
  • lvjian2003
  • lvjian2003
  • 2011年08月20日 11:15
  • 3524

C# 读取MDB空间数据并加载在地图视图

加载控件,连接并加载相应功能,如下图所示
  • wujianyouhun
  • wujianyouhun
  • 2014年04月07日 21:32
  • 983

ArcSDE:C#创建SDE要素数据集

/// /// 判断指定数据集是否存在 /// /// 工作空间名称 /// 数据集名称 /// 存在,true;否...
  • u011170962
  • u011170962
  • 2014年08月13日 12:55
  • 1656

ArcEngine连接SDE数据

做ArcEngine开发的系统,都会涉及连接空间数据库,这里记录一下链接方法和过程。 直接上代码: // 用连接属性创建 propertySet IPropertySet propertyS...
  • zy332719794
  • zy332719794
  • 2013年05月23日 09:42
  • 6480

ArcEngine+C#连接SDE空间数据库

  • 2014年10月25日 14:53
  • 126KB
  • 下载

C++中静态链接库创建与使用

演练:创建和使用静态库 (C++) Visual Studio 2013 其他版本 此分步演练演示如何创建用于 C++ 应用的静态...
  • wzhwhust
  • wzhwhust
  • 2016年11月24日 16:04
  • 1268

Android SQLite数据库创建和使用实战(一)

转载地址:http://blog.csdn.net/yanbober/article/details/20688273 Android SQLiteSQLiteOpenHelper数据库...
  • qq_20816947
  • qq_20816947
  • 2015年08月06日 11:05
  • 302
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AE+C#如何创建和使用.sde连接
举报原因:
原因补充:

(最多只允许输入30个字)