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中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了. ...
随机推荐
- hibernate 单元测试
单元测试 测试 dao service action package com.kaishengit.test; import org.hibernate.Session; import com.ka ...
- IT求职经验分享
本来这些东西应该早点写出来,之前由于一些事情的顾虑迟迟没有发表下笔整理并发表出来.最近及接下来的日子是校招找工作的关键时期,结合自己之前找暑期实习的过程及笔试面试经历(主要是三家,腾讯.360.绿盟科 ...
- Solaris与Windows Active Directory集成
通过Solaris与Active Directory的集成,Solaris可以使用Windows 2003 R2/ 2008 Active Directory来进行用户登录验证.以下是简要配置过程. ...
- Eclipse与github整合完整版
最近朋友都推荐使用github管理自己的项目,而且免费用户可以有5个仓库,恰好我也想了解下git,借此机会学习一下. github官方指南使用独立第三方git工具来进行版本控制,并不借助于eclips ...
- oracle connect by用法篇 (包括树遍历)之二
3.2查询当前时间往前的12周的开始时间.结束时间.第多少周 , ) - (rownum ) as startDate, sysdate , 'd'))) - (rownum ) as endDate ...
- SSH简单搭建
本项目使用Struts2+spring3+hibernate3: 第一步:引入jar包,具体需要哪些包根据实际情况加入.注意:把jar包导入后需要对所有包Add to Build Path;然后对工程 ...
- 关于play!的attachments.path配置、以及关于Form表单上传请求的认识
相关链接 form表单提交multipart/form-data的请求分析:http://blog.csdn.net/five3/article/details/7181521.http://blog ...
- Serializable 和 parcelable的实现和比较
首先这个两个接口都是用来序列化对象的 但是两者在性能和应用场合上有区别,parcelable的性能更好,但是在需要保存或者网络传输的时候需要选择Serializable因为parcelable版本在不 ...
- HDU 6396(2018多校第七场1011) Swordsman
场上场下各种TLE到怀疑人生...经过大佬指点之后才知道要用fread才能过,一般的快读不行... 题意:一个剑客打小怪兽,有n头小怪兽,剑客和小怪兽有m个属性.只有剑客的m个属性都大于等于某个小怪兽 ...
- ubuntu16安装pylearn2 出现错误提示importerror:no module named six.moves
由于市面上的一些教程时间比较早,入门学习时跟随教程安装容易出现各种错误,这些错误基本都是版本不同导致的 所以,我们安装过程中一定要指出包的版本,如果你已经遇到no module named six.m ...