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. taskkill /f /t /im processName

    /*@echo off */taskkill /f /t /im WINWORD.exetaskkill /f /t /im nginx.exetaskkill /f /t /im w3wp.exet ...

  2. 问题:oracle 两个表之间的修改;结果:ORACLE 两个表之间更新的实现

    前提条件: 表info_user中有字段id和name,字段id为索引 表data_user_info中有字段id和name,字段id为索引 其中表info_user中字段id和表data_user_ ...

  3. Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!

    Eclipse 编译没问题,但是运行就出现这个报错:Unknown error: Unable to build: the file dx.jar was not loaded from the SD ...

  4. ListView显示Sqlite的数据美化版与性能优化

    在上一篇文章中,我们已经实现在listview显示数据库内容的.但是我们listview中,排版不是很好看,所以这篇文章呢,我们来对listveiw进行美化.哈哈,说白了,就是对listview添加一 ...

  5. FAILED: Execution Error, return code 2 from org.apache.hadoop

    错误遇到的情形: hive整合hbase,hive的数据表 load,select,insert一切正常 通过hive往hbase关联表插入数据的时候报错,错误内容如下: 2016-04-18 14: ...

  6. java中一些常用的英语

     abstract (关键字  ) 抽象  ['.bstr.kt]  access vt.访问,存取  ['.kses]'(n.入口,使用权)  algorithm n.算法  ['.lg.rie ...

  7. OpenGL超级宝典完整源码(第五版)

    链接:https://pan.baidu.com/s/1dGQkk4T 密码:wu44 Visual Studio 2017配置OpenGL https://blog.csdn.net/qiangbi ...

  8. 下拉刷新和上拉加载更多(第三方框架MJRefresh)

    #import "RootViewController.h" #import "MJRefresh.h" @interface RootViewControll ...

  9. jmeter CSV Data数据中带有逗号解决方法

    今天用jmeter做性能测试,由于参数的数据中含有逗号,一直失败,尝试了几次终于成功,先写下经验 首先看设置 E:\apache-jmeter-2.12\bin\litaojunzb.csv文件格式如 ...

  10. opencv 基本数据结构

    转自:http://www.cnblogs.com/guoqiaojin/p/3176692.html opencv 基本数据结构   DataType : 将C++数据类型转换为对应的opencv数 ...