ArcGISEngine10.1访问ArcSDE
直连式
IWorkspace pWkspace = null;
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2workspaceFactory= null; ESRI.ArcGIS.esriSystem.IPropertySetpPropertySet =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)newESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
pWkspace = workspaceFactory.Open(pPropertySet,0);
服务式
IWorkspace pWkspace = null;
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2workspaceFactory= null;
ESRI.ArcGIS.esriSystem.IPropertySetpPropertySet=
newESRI.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)newESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
pWkspace = workspaceFactory.Open(pPropertySet,0);
连接文件式
IWorkspace pWkspace = null;
ESRI.ArcGIS.Geodatabase.IWorkspaceFactoryworkspaceFactory= null;
workspaceFactory = (ESRI.ArcGIS.Geodatabase.IWorkspaceFactory)newESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
pWkspace=workspaceFactory.OpenFromFile(@"C:\Users\Administrator\Documents\ArcGIS\Connection.sde",0);
连接字符串式
stringconnectionString =
"SERVER=lingy;DATABASE=orcl;INSTANCE=5151;USER=sde;PASSWORD=sde;VERSION=sde.DEFAULT";//connectionString =
"INSTANCE=sde:oracle11g:orcl;USER=sde;PASSWORD=sde;VERSION=sde.DEFAULT";IWorkspace pWkspace = null;
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2workspaceFactory= null; workspaceFactory =
(ESRI.ArcGIS.Geodatabase.IWorkspaceFactory2)newESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass();
pWkspace =workspaceFactory.OpenFromString(connectionString, 0);
最最屌的方式就是
1.先新建一个SDE连接文件
2.用”连接文件”的方法,在代码里连接
3.然后读取参数值
IWorkspaceFactory workspaceFactory = newSdeWorkspaceFactoryClass();
IWorkspace wkspace =workspaceFactory.OpenFromFile(@"C:\Users\USER\Desktop\Connection.sde",0);
object names, values;
wkspace.ConnectionProperties.GetAllProperties(out names, outvalues);
foreach (string name in (string[])names) {
Console.WriteLine("{0}: {1}", name,wkspace.ConnectionProperties.GetProperty(name));
}