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中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了. ...
随机推荐
- DAY2-python数据类型、字符编码、文件处理
阅读目录 一.引子 二.数字 三.字符串 四.列表 五.元祖 六.字典 七.集合 八.数据类型总结 九.运算符 十.字符编码 十一.文件处理 一.引子 1 什么是数据? x=10,10是我们要存储的数 ...
- Solr5.5.3的研究之路 ---1、从Mysql导入数据并创建索引
公司需要用到全文检索,故使用Solr,也是新人一枚,本人查看的前提是Solr已经安装部署成功,我用的服务器是自带的Jetty 1.创建Collection [root@whoami bin]# ./s ...
- PL/SQL批处理语句(二)FORALL
PL/SQL批处理语句(二)FORALL 我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换, ...
- 在异步回调中调用MessageBox.Show
public static void Test() { ThreadStart aThreadStart = delegate() { ); MessageBox.Show("Good!&q ...
- 详解CSS盒模型(转)
详解CSS盒模型 阅读目录 一些基本概念 盒模型 原文地址:http://luopq.com/2015/10/26/CSS-Box-Model/ 本文主要是学习CSS盒模型的笔记,总结了一些基本概 ...
- nodejs安装配置
1.安装node.js(6.3.0)2.检测PATH环境变量是否配置了Node.jscmd下node --version3.D:/www/nodejs文件夹下创建hello.jsvar http = ...
- html 5 data-* (dataset) 属性和 jquery data方法比较
一些文章在介绍html 5 data-* (dataset)属性时,会提到jquery的data方法,认为data方法能够很好的利用html 5的这个特性.但实际上,二者的兼容性是很差的.下面给出一段 ...
- 《Effective Java》第4章 类和接口
第13条:使类和成员的可访问性最小化 第一规则很简单:尽可能地使每个类或者成员不被外界访问.换句话说.应该使用与你正在编写的软件的对应功能相一致的.尽可能最小的访问级别. 对于顶层的(非嵌套的)类和接 ...
- 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 记得联网情况下才能下载.
- Visual Studio 代码格式化插件(等号自动对齐、注释自动对齐等)
1.下载地址 插件:Code alignment 下载地址 2.介绍 Based on principles borrowed from mathematics and other discipli ...