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中气泡标注的添加.修改! 你微微地笑着,不同我说什么话.而我觉得,为了这个,我已等待得久了. ...
随机推荐
- python的ftp上传和下载
# -*- coding: utf- -*- import os import ftplib USER_NAME = "" PASSWORD = "" SERV ...
- madplay的使用方法
管理madplay的主程序,包括播放,暂停播放,恢复播放,停止播放 system("madplay north.mp3 &");//利用system函数调用madplay播 ...
- C++之deque
deque(包含头文件#include<deque>)由若干段连续空间串接而成,一旦有必要在deque的头部或尾端增加新的空间,便配置一段定量连续的空间,串接在deque的头部或尾端.de ...
- checked多选,取消,反选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mysql join查询的on 与 where 的不同点
on总数以left join的左表为准,where会过滤掉,不符合where条件的数据
- EZOJ #78
传送门 分析 AC自动机板子题qwq 不过似乎可以哈希(因为所有模式串的长度相同,所以哈希乱搞就可以) 代码 #include<iostream> #include<cstdio&g ...
- PHP微信分享
注意 : 分享需要认证微信订阅号或者服务号. php 代码(thinkphp): $appid='xxx'; $appsecret='xxxx'; $timestamp = time(); ...
- Mat类的输出格式
从前面的例程中, 可以看到 Mat 类重载了<<操作符, 可以方便得使用流操作来输出矩阵的内容.默认情况下输出的格式是类似 Matlab 中矩阵的输出格式.除了默认格式,Mat 也支持其他 ...
- 《Head First Servlets & JSP》-5-属性和监听
Servlet初始化参数 在DD文件(web.xml)中 Servlet参数在/参数下: 在Servlet代码中 在Servlet初始化之前不能使用Servlet初始化参数 一旦有了一个Servlet ...
- 多线程学习-基础( 九)线程同步Synchronized关键字
一.线程同步1.synchronized关键字的作用域有二种:(1)某个对象实例内:synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果 ...