AE+C#如何创建和使用.sde连接

1
分享 2012-11-23
我们通过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

0 个评论

要回复文章请先登录注册