{
IWorkspaceFactory pworkspaceF = new SdeWorkspaceFactoryClass();
IPropertySet pPropertySet = new PropertySetClass();
try
{
//设置数据库服务器名
pPropertySet.SetProperty("Server", "*.*.*.*");
pPropertySet.SetProperty("Service", "esri_sde");
pPropertySet.SetProperty("Database", "sde");
pPropertySet.SetProperty("Username", "sde");
pPropertySet.SetProperty("Password", "*");
// SDE版本,此处默认
pPropertySet.SetProperty("VERSION", "sde.DEFAULT");
IRasterWorkspaceEx Workspace = (IRasterWorkspaceEx)pworkspaceF.Open(pPropertySet, 0);
//打开 SDE工作空间,并转化为地物工作空间
IRasterDataset pRasterDataset = (IRasterDataset)Workspace.OpenRasterDataset("sde.sde.cbs");
//sde.sde.rgb
IRasterLayer pLayerBackground = new RasterLayerClass();
pLayerBackground.CreateFromDataset(pRasterDataset);
axMapControl1.AddLayer(pLayerBackground);
axMapControl1.Refresh();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
今天遇到郁闷的问题,加载SDE里面的栅格文件总是不成功。开始代码是这样写的:
IRasterWorkspace pRasterWorkspace = OpenSDEWorkspace("192.168.0.16", "port:5151", "sde", "qqqqqq", "Oracle", "SDE.DEFAULT") as IRasterWorkspace;
//IRasterWorkspace pRasterWorkspace = pWorkspace as IRasterWorkspace;
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset("SDE.HILLSHADE_1000");
提示“未将对象引用设置到对象的实例”,原来 SdeWorkspaceFactoryClass没有实现 IRasterWorkspace接口,而只能转换为 IRasterWorkspaceEx。