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;

        }

 

相关文章推荐

IPropertySet接口

Members   AllProperties Methods Description Count The number of properties con...

ArcGIS开发手动添加License类

第一步: 在工程中添加类: 类文件名“LicenseInitializer.Designer.cs”和“LicenseInitializer.cs” 1. LicenseInitializer.cs类...

C#高级编程七十一天----DLR ScriptRuntime

包含DLR ScriptRuntime DLR是微软的一个开源项目.为.NET影城程序提供了动态脚本注入支持.DLR构建的功能包含两个方面,一个是共享的动态类型系统,一个是标准的承载模型.但是VS并...

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

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

c#+AE开发:通过一个点(坐标)创建点状图层

背景: 最近,用c#做二次开发要实现一个功能,即通过鼠标点击创建一个以当前单机点为圆心的缓冲区。要创建缓冲区进行缓冲区分析,则必须要有相应的图层。因此我首先需要通过鼠标点创建一个点状图层添加到图层中...

c# AE 创建的shp 在arcmap中放大不显示处理

ArcEngine中shp中先加入要素然后删除一部分要素后,放大图形后不显示的问题解决方法 (一)问题描述如下: shp中先加入要素然后删除一部分要素后,图形为什么显示不正常了 //------...

C#读取shp文件并获取图形保存到sde要素类中(不使用ESRI的类库,纯c#实现)

说明:首先要将sde要素类发布成对应的要素服务,通过对要素服务的操作,实现数据在sde要素类中的增删 //向服务器发出请求 public string getPostData(st...

C#+AE 创建几何网络

几何网络必须存在数据集中,Engine创建的时候要有geodatabase updata 许可,我的数据库是个人数据库。 先看一下ArcMap是怎么创建的 在catalog中打开创建几个网络的...

SDE连接,创建数据集,数据导入以及数据导出

SDE连接,创建数据集,数据导入以及数据导出   2013-09-12 14:23:25|  分类: sde|举报|字号 订阅      ...
  • zqxmhl
  • zqxmhl
  • 2016年05月18日 09:06
  • 425
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AE+C#如何创建和使用.sde连接
举报原因:
原因补充:

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