AE+C#如何创建和使用.sde连接
分享
我们通过ArcCatalog工具连接ArcSDE管理的空间数据库的时候,都会在ArcCatalog中建立一个.sde文件,该文件为一个空间数据库连接文件,有了这个文件可以直接连接到空间数据库中去,那么在ArcEngine中是如何建立和使用这个.sde文件的呢?
以下为通过AE+C#建立和使用.sde文件的代码示例
//声明临时路径
string path = @"d:\temp";
// 声明临时.sde文件名称
string sdeName = @"localhost.sde";
string sdePath = path + "\\" + sdeName; // 如果已经存在了,则删除了重新创建
if (File.Exists(sdePath))
{
File.Delete(sdePath);
}
IWorkspaceFactory workspaceFactory = newSdeWorkspaceFactoryClass();
// 创建.sde文件
IWorkspaceName workspaceName =workspaceFactory.Create(path, sdeName, ConnectSDE(true), 0);
// 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了
IWorkspace pWorkspace =workspaceFactory.OpenFromFile(sdePath, 0);
其中ConnectSDE(true)为获取IPropertySet接口的函数,样例代码如下
///<summary>
///设置SDE连接属性
///</summary>
///<paramname="ChkSdeLinkModle"></param>
///<returns>IPropertySet</returns>
publicstaticIPropertySet ConnectSDE(bool ChkSdeLinkModle)
{
//定义一个属性
IPropertySet Propset = newPropertySetClass();
if (ChkSdeLinkModle == true) //采用SDE连接
{
//设置数据库服务器名
Propset.SetProperty("SERVER", "192.168.1.149");
//设置SDE的端口,这是安装时指定的,默认安装时"port:5151"
Propset.SetProperty("INSTANCE", "port:5151");
//SDE的用户名
Propset.SetProperty("USER", "sde");
//密码
Propset.SetProperty("PASSWORD", "sde");
//设置数据库的名字,只有SQL Server Informix 数据库才需要设置
Propset.SetProperty("DATABASE", "orcl");
//SDE的版本,在这为默认版本
Propset.SetProperty("VERSION", "SDE.DEFAULT");
}
else//直接连接
{
//设置数据库服务器名,如果是本机可以用"sde:sqlserver:.",直接连接会弹出选择数据库对话框,要求填入用户名密码
Propset.SetProperty("INSTANCE", "sde:sqlserver:xxsde");
}
return Propset;
}
文章来源:http://blog.csdn.net/sydbc/article/details/17137519
以下为通过AE+C#建立和使用.sde文件的代码示例
//声明临时路径
string path = @"d:\temp";
// 声明临时.sde文件名称
string sdeName = @"localhost.sde";
string sdePath = path + "\\" + sdeName; // 如果已经存在了,则删除了重新创建
if (File.Exists(sdePath))
{
File.Delete(sdePath);
}
IWorkspaceFactory workspaceFactory = newSdeWorkspaceFactoryClass();
// 创建.sde文件
IWorkspaceName workspaceName =workspaceFactory.Create(path, sdeName, ConnectSDE(true), 0);
// 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了
IWorkspace pWorkspace =workspaceFactory.OpenFromFile(sdePath, 0);
其中ConnectSDE(true)为获取IPropertySet接口的函数,样例代码如下
///<summary>
///设置SDE连接属性
///</summary>
///<paramname="ChkSdeLinkModle"></param>
///<returns>IPropertySet</returns>
publicstaticIPropertySet ConnectSDE(bool ChkSdeLinkModle)
{
//定义一个属性
IPropertySet Propset = newPropertySetClass();
if (ChkSdeLinkModle == true) //采用SDE连接
{
//设置数据库服务器名
Propset.SetProperty("SERVER", "192.168.1.149");
//设置SDE的端口,这是安装时指定的,默认安装时"port:5151"
Propset.SetProperty("INSTANCE", "port:5151");
//SDE的用户名
Propset.SetProperty("USER", "sde");
//密码
Propset.SetProperty("PASSWORD", "sde");
//设置数据库的名字,只有SQL Server Informix 数据库才需要设置
Propset.SetProperty("DATABASE", "orcl");
//SDE的版本,在这为默认版本
Propset.SetProperty("VERSION", "SDE.DEFAULT");
}
else//直接连接
{
//设置数据库服务器名,如果是本机可以用"sde:sqlserver:.",直接连接会弹出选择数据库对话框,要求填入用户名密码
Propset.SetProperty("INSTANCE", "sde:sqlserver:xxsde");
}
return Propset;
}
文章来源:http://blog.csdn.net/sydbc/article/details/17137519
0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 苹果系统下可以使用arcgis 吗?
- Arcgis的地位不可撼动,那有必要掌握使用其他GIS软件吗
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
- 请问arcmap如何使用多线程?
- 如何使用脚本或其他方法,将图层属性中属性域原值内容替换为属性域描述?
- arcgis runtime for andriod 100.1 如何使用eclipse开发
- 使用ArcGIS Desktop10.2版本,如何设置图例横着放且label在正下方?
- 请问如何使用ArcEngine实现(在右击图例中)Convert To Gtaphics这一功能?
- 使用ArcGIS Server解析DEM等格式文件
- 使用ArcGIS Desktop,如何导出3DS格式数据?