如题,想实现这个功能,可是,有一步是,在连接SDE以后,要获取里面的数据集。
- VB.NET code
Dim iPropertySet As New ESRI.ArcGIS.esriSystem.PropertySet Dim iSDEWorkspaceFactory As IWorkspaceFactory = New ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactory 'On Error GoTo CheckErr With iPropertySet .SetProperty("SERVER", "TAO") .SetProperty("INSTANCE", "esri_sde") .SetProperty("USER", "sde") .SetProperty("PASSWORD", "11") .SetProperty("VERSION", "SDE.DEFAULT") .SetProperty("DATABASE", "sde") End With Try m_sdeWorksapce = iSDEWorkspaceFactory.Open(iPropertySet, 0) If m_sdeWorksapce IsNot Nothing Then MsgBox("SDE连接成功") End If Catch ex As Exception MsgBox(ex.Message) Exit Sub End Try Dim m_EnumDSName As IEnumDatasetName Dim m_SdeDSName As IDatasetName m_EnumDSName = m_sdeWorksapce.DatasetNames(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureDataset) m_SdeDSName = m_EnumDSName.Next()
m_EnumDSName是空的……
想问的是
(1)m_sdeWorksapce.DatasetNames 得到的是什么?表?还是什么?
(2)sde数据库中是有表的,为什么m_EnumDSName是空呢?
求各位大神指教啊~~
------解决方案--------------------
DatasetNames 这个方法主要是获取SDE中的某个类型数据枚举器,根据你传入的参数列出,
如果你想要显示表,那个类型应该是esriDTFeatureClass
SDE中可保存的数据类型相当多,参数要根据需要选择,如果不知道具体的数据类型,可以使用esriDTAny
这样可列出所有类型了
其实单纯的shp导入sde不用这么麻烦,直接使用arcsde自带的shp2sde工具就行了
http://blog.csdn.net/nickwar/article/details/6062806
------解决方案--------------------
见这里
------解决方案--------------------
你用的ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureDataset
你改成esriDTFeatureClass试下