public static IWorkspace GetWorkspace(Hashtable pPropList, string progID) { try { IPropertySet2 propertySets = new PropertySetClass(); foreach (string paraName in pPropList.Keys) { propertySets.SetProperty(paraName.ToUpper(), pPropList[paraName]); } IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); return(wsf.Open(propertySets, 0)); return((new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass()).Open(propertySets, 0)); IWorkspaceName2 workspaceName = new WorkspaceNameClass(); workspaceName.ConnectionProperties = propertySets; // 类型库需要动态设置 workspaceName.WorkspaceFactoryProgID = progID; IName pName = workspaceName as IName; IWorkspace workspace = pName.Open() as IWorkspace; //IWorkspace workspace = pName.Open() as IWorkspace; return(workspace); } catch (Exception ex) { MessageBox.Show("SDE连接参数不正确,请和系统管理员联系!"); return(null); } }
public static IWorkspace GetWorkspace(Hashtable pPropList, string progID) { try { IPropertySet2 propertySets = new PropertySetClass(); foreach (string paraName in pPropList.Keys) propertySets.SetProperty(paraName.ToUpper(), pPropList[paraName]); IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); return wsf.Open(propertySets, 0); return (new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass()).Open(propertySets, 0); IWorkspaceName2 workspaceName = new WorkspaceNameClass(); workspaceName.ConnectionProperties = propertySets; // 类型库需要动态设置 workspaceName.WorkspaceFactoryProgID = progID; IName pName = workspaceName as IName; IWorkspace workspace = pName.Open() as IWorkspace; //IWorkspace workspace = pName.Open() as IWorkspace; return workspace; } catch (Exception ex) { MessageBox.Show("SDE连接参数不正确,请和系统管理员联系!"); return null; } }
//得到SDE工作空间 public static IWorkspace OpenSDEWorkspace() { string sdeServer = GetCenterServerSettings("ServerConfing/LocalSDEServer/Server"); string sdeInstance = GetCenterServerSettings("ServerConfing/LocalSDEServer/Instance"); string sdeUser = GetCenterServerSettings("ServerConfing/LocalSDEServer/UserName"); string sdePassword = GetCenterServerSettings("ServerConfing/LocalSDEServer/PassWord"); string sdeVersion = GetCenterServerSettings("ServerConfing/LocalSDEServer/Version"); IPropertySet pPropertSet = new PropertySetClass(); pPropertSet.SetProperty("Server", sdeServer); pPropertSet.SetProperty("Instance", sdeInstance); pPropertSet.SetProperty("user", sdeUser); pPropertSet.SetProperty("password", sdePassword); pPropertSet.SetProperty("version", sdeVersion); IWorkspace pWorkspace = null; IWorkspaceFactory pWorkspaceF = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); try { pWorkspace = pWorkspaceF.Open(pPropertSet, 0); } catch (Exception e) { pWorkspace = null; } return(pWorkspace); }
public void FindFeatureClassTest() { ArcGISTestHelper testhelper = new ArcGISTestHelper(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeArcView); testhelper.Initialize(); IWorkspaceFactory factory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); IWorkspace workspace = factory.OpenFromFile(@"C:\Documents and Settings\cum30\Application Data\ESRI\ArcCatalog\henricogisdb.DPU.DBMS.FEATURE_QAQC.sde", 0); string featureclassName = "MANHOLES"; bool exactMatch = true; List <IFeatureClass> actual = Umbriel.ArcGIS.Geodatabase.Utility.FindFeatureClass(workspace, featureclassName, exactMatch); System.Diagnostics.Trace.WriteLine("FindFeatureClassTest Count=" + actual.Count.ToString()); testhelper.Cleanup(); Assert.AreEqual(actual.Count, 1); }