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. [Chapter 3 Process]Practice 3.1 相关知识:进程创建、fork函数

    3.1 Using the program shown in the Figure3.30, explain what the output will be at LINE A 答案:LINE A 处 ...

  2. Repmat:Replicate and tile an array

    Repmat:Replicate and tile an array Syntax B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p. ...

  3. cygwin选择安装包选项搭建NDK开发环境/配置cygwin的root权限

    9.Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包.那四个单选按钮是选择下边树的样式,默认就行,不用动.View默认是Category,建议改成full显示全部包再查,省的一些包 ...

  4. java之静态函数和静态变量

    静态变量: 静态变量好似一种成员变量,它的特点是前面有static. 普通变量会有多份,它在每个对象当中都存在,但是静态变量只有一份,它是属于类的. 静态变量的调用方法: 1.类名.变量名 Custo ...

  5. checked多选,取消,反选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ReactNative http网络通讯

    安装 fetch npm install whatwg-fetch --save 1.fetch的Get方式通讯 async sendGet(){ let response = await fetch ...

  7. Opencv Laplacian(拉普拉斯算子)

    #include <iostream>#include <opencv2/opencv.hpp>#include <math.h> using namespace ...

  8. Newtonsoft Json操作类库的使用

    1.解析简单Json字符串 if (l_sSenJson != "") { JObject obj2 = (JObject)JsonConvert.DeserializeObjec ...

  9. 数据结构_我不会AVL_wbhavl

    问题描述 欢迎来到暴走数据结构,我是洪尼玛.今天,我们来玩 AVL 树,怎么玩呢? 很简单:给你 n 个数字,你需要按顺序插入一棵 AVL树中,然后输出每个数所在节点的深度(从 1 开始).因为我不会 ...

  10. ModelSim Simulation of RapidIO II IP Core Demonstration Testbench May Require ld_debug Command

    Solution ID: fb83262Last Modified: May 17, 2013Product Category: Intellectual PropertyProduct Area: ...