public void AddSDELayer(bool ChkSdeLinkModle)
{
  //定义一个属性 
  IPropertySet propset = new PropertySetClass(); 
  if (ChkSdeLinkModle == true) // 采用SDE连接 
  {
      //设置数据库服务器名 
      propset.SetProperty("SERVER", "192.168.188.128");
      //设置SDE的端口,这是安装时指定的,默认安装时"port:5151" 
      propset.SetProperty("INSTANCE", "port:5151");
      //SDE的用户名 
      propset.SetProperty("USER", "sa");
      //密码 
      propset.SetProperty("PASSWORD", "123456");
      //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置 
      propset.SetProperty("DATABASE", "esri_sde");
      //SDE的版本,在这为默认版本 
      propset.SetProperty("VERSION", "SDE.DEFAULT");
  }
  else // 直接连接  
  {
      //设置数据库服务器名,如果是本机可以用"sde:sqlserver:." 
      propset.SetProperty("INSTANCE", "sde:sqlserver:192.168.188.128");
      //SDE的用户名 
      propset.SetProperty("USER", "sa");
      //密码 
      propset.SetProperty("PASSWORD", "123456");
      //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置             
      propset.SetProperty("DATABASE", "esri_sde");
      //SDE的版本,在这为默认版本 
      propset.SetProperty("VERSION", "SDE.DEFAULT");
   }
   //定义一个工作空间,并实力化为SDE的工作空间 
   IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();
   //打开SDE工作空间,并转化为地物工作空间 
   IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(propset, 0);
   /*定义一个地物类,并打开SDE中的管点地物类,写的时候一定要写全.如SDE中有一个管点层,你不能写成IFeatureClass Fcls = Workspace.OpenFeatureClass ("管点");这样,一定要写成下边的样子.*/
   IFeatureClass Fcls = Workspace.OpenFeatureClass("esri_sde.DBO.道路");
   IFeatureLayer Fly = new FeatureLayerClass();
   Fly.FeatureClass = Fcls;
   axMapControl1.Map.AddLayer(Fly);
   axMapControl1.ActiveView.Refresh();
}

-------------------------------------------------------------------------------------------------------------------------------

public static void test()

{

try

{

IWorkspace pWS = GetSDEWorkspace("localhost", "localhost/orcl", "sde", "sde", "sde.DEFAULT");

IDatabaseConnectionInfo4 pDCInfo = pWS as IDatabaseConnectionInfo4;

IEnumUserInfo pEnumUsers = pDCInfo.ConnectedUsers;

IUserInfo pUser = pEnumUsers.Next();

int pSessionID;//获得连接用户的sessionID

string sUserName = "";//连接用户名称

string sClientName = "";//连接用户的机器名

string sConnetionTime = "";//连接用户的开始连接时间

while (pUser != null)

{

if (!pUser.IsOwnConnection)

{

pSessionID = pUser.SessionID;

sUserName = pUser.Name;

sClientName = pUser.ClientName;

sConnetionTime = pUser.ConnectionTime.ToString();

//通过用户的sessionID断开用户连接

pDCInfo.DisconnectUser(pSessionID);

}

pUser = pEnumUsers.Next();

}

}

catch (Exception e)

{ }

}

public static IWorkspace GetSDEWorkspace(string sServerName, string sInstancePort, string sUserName, string sPassword, string sVersionName)

{

IPropertySet2 set = new PropertySetClass();

set.SetProperty("Server", "");

set.SetProperty("DBCLIENT", "Oracle");

set.SetProperty("Instance", "sde:oracle11g:" + sInstancePort);

set.SetProperty("User", sUserName);

set.SetProperty("password", sPassword);

set.SetProperty("version", sVersionName);

IWorkspaceFactory2 class2 = new SdeWorkspaceFactoryClass();

try

{

return class2.Open(set, 0);

}

catch (Exception ex)

{

return null;

}

}

---------------------------------------------------------------------------------------------------------

ArcGISEngine10.1

访问

ArcSDE

直连式

IWorkspace

pWkspace =

null

;

ESRI.ArcGIS.Geodatabase.

IWorkspaceFactory2

workspaceFactory =

null

;

ESRI.ArcGIS.esriSystem.

IPropertySet

pPropertySet =

new

ESRI.ArcGIS.esriSystem.

PropertySetClass

();

pPropertySet.SetProperty(

"SERVER"

,

"lingy"

);

pPropertySet.SetProperty(

"INSTANCE"

,

"sde:oracle11g:orcl"

);

pPropertySet.SetProperty(

"AUTHENTICATION_MODE"

,

"DBMS"

);

pPropertySet.SetProperty(

"USER"

,

"sde"

);

pPropertySet.SetProperty(

"PASSWORD"

,

"sde"

);

pPropertySet.SetProperty(

"VERSION"

,

"SDE.DEFAULT"

);

workspaceFactory =

(ESRI.ArcGIS.Geodatabase.

IWorkspaceFactory2

)

new

ESRI.ArcGIS.DataSourcesGDB.

SdeWorkspaceF

actoryClass

();

pWkspace = workspaceFactory.Open(pPropertySet, 0);

服务式

IWorkspace

pWkspace =

null

;

ESRI.ArcGIS.Geodatabase.

IWorkspaceFactory2

workspaceFactory =

null

;

ESRI.ArcGIS.esriSystem.

IPropertySet

pPropertySet =

new

ESRI.ArcGIS.esriSystem.

PropertySetClass

();

pPropertySet.SetProperty(

"SERVER"

,

"lingy"

);

pPropertySet.SetProperty(

"INSTANCE"

,

"esri_sde"

);

pPropertySet.SetProperty(

"DATABASE"

,

"orcl"

);

pPropertySet.SetProperty(

"USER"

,

"sde"

);

pPropertySet.SetProperty(

"PASSWORD"

,

"sde"

);

pPropertySet.SetProperty(

"VERSION"

,

"SDE.DEFAULT"

);

workspaceFactory =

(ESRI.ArcGIS.Geodatabase.

IWorkspaceFactory2

)

new

ESRI.ArcGIS.DataSourcesGDB.

SdeWorkspaceF

actoryClass

();

pWkspace = workspaceFactory.Open(pPropertySet, 0);

 

ArcGIS Engine 添加SDE数据库的更多相关文章

  1. Arcgis Engine 添加一个Symbol符号样式步骤

    public static void DrawPictureMarkerSymbol(IGlobe globe, String layerName) { //添加一个图层 ESRI.ArcGIS.Ca ...

  2. ArcGIS Engine添加地图元素的实现

    在ArcGIS中,我们使用的制图控件除了MapControl之外,还有PageLayoutControl,用于页面布局和制图,生成一幅成品地图. PageLayoutControl 封装了PageLa ...

  3. arcgis engine - 添加图例,指北针.

    esri帮助提供了使用比例尺的方法: Working with map surrounds 主要代码为: public void AddMapSurround(IPageLayout pageLayo ...

  4. 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划

    前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...

  5. ArcGIS Engine开发之地图基本操作(4)

    ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...

  6. ArcGIS Engine开发之旅05---空间数据库

    原文:ArcGIS Engine开发之旅05---空间数据库 1  Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统 ...

  7. arcgis 10 版本连接SDE数据库报错:No ArcSDE server license found 最有效的解决方法

    这个问题可以这样解决:就在在Oracle中登入SDE数据库 进入到SDE数据库中后,找到表SERVER_CONFIG,其中有一行数据记录的就是我们需要进行修改的数据 你需要做的就是找到一个可用的,前面 ...

  8. ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新

    ArcGIS Engine效率探究——要素的添加和删除.属性的读取和更新 来自:http://blog.csdn.net/freewaywalker/article/details/23703863 ...

  9. [转] ArcGIS engine中气泡标注的添加、修改

    小生 原文 ArcGIS engine中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了.                                   ...

随机推荐

  1. DAY2-python数据类型、字符编码、文件处理

    阅读目录 一.引子 二.数字 三.字符串 四.列表 五.元祖 六.字典 七.集合 八.数据类型总结 九.运算符 十.字符编码 十一.文件处理 一.引子 1 什么是数据? x=10,10是我们要存储的数 ...

  2. Solr5.5.3的研究之路 ---1、从Mysql导入数据并创建索引

    公司需要用到全文检索,故使用Solr,也是新人一枚,本人查看的前提是Solr已经安装部署成功,我用的服务器是自带的Jetty 1.创建Collection [root@whoami bin]# ./s ...

  3. PL/SQL批处理语句(二)FORALL

    PL/SQL批处理语句(二)FORALL 我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换, ...

  4. 在异步回调中调用MessageBox.Show

    public static void Test() { ThreadStart aThreadStart = delegate() { ); MessageBox.Show("Good!&q ...

  5. 详解CSS盒模型(转)

    详解CSS盒模型   阅读目录 一些基本概念 盒模型 原文地址:http://luopq.com/2015/10/26/CSS-Box-Model/ 本文主要是学习CSS盒模型的笔记,总结了一些基本概 ...

  6. nodejs安装配置

    1.安装node.js(6.3.0)2.检测PATH环境变量是否配置了Node.jscmd下node --version3.D:/www/nodejs文件夹下创建hello.jsvar http = ...

  7. html 5 data-* (dataset) 属性和 jquery data方法比较

    一些文章在介绍html 5 data-* (dataset)属性时,会提到jquery的data方法,认为data方法能够很好的利用html 5的这个特性.但实际上,二者的兼容性是很差的.下面给出一段 ...

  8. 《Effective Java》第4章 类和接口

    第13条:使类和成员的可访问性最小化 第一规则很简单:尽可能地使每个类或者成员不被外界访问.换句话说.应该使用与你正在编写的软件的对应功能相一致的.尽可能最小的访问级别. 对于顶层的(非嵌套的)类和接 ...

  9. Required plugin could not be found. Videos requires to install plugins to play files of the following types : MPEG-4-AAC decoder and H.264 decoder

    https://linuxconfig.org/how-to-install-mpeg-4-aac-decoder-for-centos-7-linux 记得联网情况下才能下载.

  10. Visual Studio 代码格式化插件(等号自动对齐、注释自动对齐等)

    1.下载地址 插件:Code alignment  下载地址 2.介绍 Based on principles borrowed from mathematics and other discipli ...