ArcGIS Engine 添加SDE数据库
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数据库的更多相关文章
- Arcgis Engine 添加一个Symbol符号样式步骤
public static void DrawPictureMarkerSymbol(IGlobe globe, String layerName) { //添加一个图层 ESRI.ArcGIS.Ca ...
- ArcGIS Engine添加地图元素的实现
在ArcGIS中,我们使用的制图控件除了MapControl之外,还有PageLayoutControl,用于页面布局和制图,生成一幅成品地图. PageLayoutControl 封装了PageLa ...
- arcgis engine - 添加图例,指北针.
esri帮助提供了使用比例尺的方法: Working with map surrounds 主要代码为: public void AddMapSurround(IPageLayout pageLayo ...
- 基于Arcgis Engine 10.2(C#)+PostgreSQL 11(Postgis 3)+pgRouting 3.0实现使用数据库进行路径规划
前言:最近在(被迫)使用ArcGIS Engine10.2(.NET平台)进行二次开发(桌面应用),因为想做一个最短路径查询的功能,而arcgis的网络分析又比较麻烦,于是想到了使用Postgis.但 ...
- ArcGIS Engine开发之地图基本操作(4)
ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...
- ArcGIS Engine开发之旅05---空间数据库
原文:ArcGIS Engine开发之旅05---空间数据库 1 Geodatabase概念 Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统 ...
- arcgis 10 版本连接SDE数据库报错:No ArcSDE server license found 最有效的解决方法
这个问题可以这样解决:就在在Oracle中登入SDE数据库 进入到SDE数据库中后,找到表SERVER_CONFIG,其中有一行数据记录的就是我们需要进行修改的数据 你需要做的就是找到一个可用的,前面 ...
- ArcGIS Engine效率探究——要素的添加和删除、属性的读取和更新
ArcGIS Engine效率探究——要素的添加和删除.属性的读取和更新 来自:http://blog.csdn.net/freewaywalker/article/details/23703863 ...
- [转] ArcGIS engine中气泡标注的添加、修改
小生 原文 ArcGIS engine中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了. ...
随机推荐
- taskkill /f /t /im processName
/*@echo off */taskkill /f /t /im WINWORD.exetaskkill /f /t /im nginx.exetaskkill /f /t /im w3wp.exet ...
- 问题:oracle 两个表之间的修改;结果:ORACLE 两个表之间更新的实现
前提条件: 表info_user中有字段id和name,字段id为索引 表data_user_info中有字段id和name,字段id为索引 其中表info_user中字段id和表data_user_ ...
- 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 ...
- ListView显示Sqlite的数据美化版与性能优化
在上一篇文章中,我们已经实现在listview显示数据库内容的.但是我们listview中,排版不是很好看,所以这篇文章呢,我们来对listveiw进行美化.哈哈,说白了,就是对listview添加一 ...
- FAILED: Execution Error, return code 2 from org.apache.hadoop
错误遇到的情形: hive整合hbase,hive的数据表 load,select,insert一切正常 通过hive往hbase关联表插入数据的时候报错,错误内容如下: 2016-04-18 14: ...
- java中一些常用的英语
abstract (关键字 ) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口,使用权) algorithm n.算法 ['.lg.rie ...
- OpenGL超级宝典完整源码(第五版)
链接:https://pan.baidu.com/s/1dGQkk4T 密码:wu44 Visual Studio 2017配置OpenGL https://blog.csdn.net/qiangbi ...
- 下拉刷新和上拉加载更多(第三方框架MJRefresh)
#import "RootViewController.h" #import "MJRefresh.h" @interface RootViewControll ...
- jmeter CSV Data数据中带有逗号解决方法
今天用jmeter做性能测试,由于参数的数据中含有逗号,一直失败,尝试了几次终于成功,先写下经验 首先看设置 E:\apache-jmeter-2.12\bin\litaojunzb.csv文件格式如 ...
- opencv 基本数据结构
转自:http://www.cnblogs.com/guoqiaojin/p/3176692.html opencv 基本数据结构 DataType : 将C++数据类型转换为对应的opencv数 ...