1. 程式人生 > >獲取mdb下要素類FeatureClass,獨立要素類,沒有dataset獲取要素類

獲取mdb下要素類FeatureClass,獨立要素類,沒有dataset獲取要素類

idata t對象 blank span 素數 string end all .get

轉載自:http://blog.sina.com.cn/s/blog_6faf711d0100za4x.html

獲取mdb數據庫要素類的名稱

整體思路如下:
1.通過IWorkspace的Datasets屬性獲取工作空間中的所有Dataset對象(IEnumDataset)
2.枚舉EnumDataset,獲取Dataset對象
3.如果該Dataset是FeatureDataset
4.QI到IFeatureClassContainer接口
for(int i=0;i < pFClContainer.ClassCount;i++)
{
IFeatureClass pFeatureClass= pFClContainer.Class(i);
IDataset pDataset = pFeatureClass as IDataset;
string pFeaClsName= pDataset.Name;
……
} -------------------------------------------- 另外 ----------------------------- 轉載自:http://blog.csdn.net/u011609113/article/details/52083451

有一些要素數據集是放到特定的要素數據集中的,而有些則直接位於工作空間中。如下圖。

技術分享

獲取獨立於要素數據集的要素類很簡單,方法如下:

 1 /// <summary>  
 2 /// 獲取獨立的要素類  
 3 /// </summary>  
 4 /// <param name="IN_SomeFeatureDataset">工作空間下任意一個要素數據集</param>  
 5 /// <param name="IN_FeatureClassName">獨立要素類的名稱</param>  
 6 /// <returns>找的的獨立要素類</returns>  
 7 private IFeatureClass PRV_GetIndependentFeatureClass(IFeatureDataset IN_SomeFeatureDataset,string
IN_FeatureClassName) 8 { 9 //獲取所有獨立的要素類 10 IEnumDataset Temp_AllIndependentFeatureClass=(IN_SomeFeatureDataset.Workspace.get_Datasets(esriDatasetType.esriDTFeatureClass)); 11 //獲取每一個獨立的要素類 12 IFeatureClass Each_IndependentFeatureClass = Temp_AllIndependentFeatureClass.Next() as IFeatureClass; 13 //遍歷所有要素類 14 while (Each_IndependentFeatureClass != null) 15 { 16 //如果找到了就返回 17 if (Each_IndependentFeatureClass.AliasName==IN_FeatureClassName) 18 return Each_IndependentFeatureClass; 19 } 20 return null; 21 }

獲取mdb下要素類FeatureClass,獨立要素類,沒有dataset獲取要素類