FeatureClass转换为DataTable
2016-05-09 14:56
435 查看
遍历ITable的行
将FeatureClass转换为ITable然后再转换为DataTable,效率较高;
避免使用pTable.GetRow(i).get_Value(j)时,出现hresult 0x80040952错误
获取当前工作空间下的所有的FeatureClass or Table
获取工作空间下的所有的FeatureClass
获取工作空间加的所以的Table
将FeatureClass转换为ITable然后再转换为DataTable,效率较高;
避免使用pTable.GetRow(i).get_Value(j)时,出现hresult 0x80040952错误
private DataTable InitDataTable(IWorkspace pWorkspace) { if (pWorkspace == null) { return null; } DataTable pDataTable = new DataTable(); try { IList<ITable> pListFeaCls = GetlistTable(pWorkspace); foreach (ITable pFeaTable in pListFeaCls) { ICursor pCursor = pFeaTable.Search(null, false); IRow pRow = pCursor.NextRow(); while (pRow != null) { pDataTable.Rows.Add(new object[] { pRow.get_Value(1), pRow.get_Value(2), pRow.get_Value(3),pRow.get_Value(4), pRow.get_Value(5), pRow.get_Value(6), pRow.get_Value(7),pRow.get_Value(8)}); pRow = pCursor.NextRow(); } } return pDataTable; } catch { return null; } }
获取当前工作空间下的所有的FeatureClass or Table
获取工作空间下的所有的FeatureClass
private IList<IFeatureClass> getListFeaCls(IWorkspace pWs) { try { IList<IFeatureClass> pListFeaCls = new List<IFeatureClass>(); IEnumDataset pEDataset = pWs.get_Datasets(esriDatasetType.esriDTAny); IDataset pDataset = pEDataset.Next(); while (pDataset != null) { if (pDataset.Type == esriDatasetType.esriDTFeatureClass) { pListFeaCls.Add(pDataset as IFeatureClass); } else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset) { IEnumDataset pESubDataset = pDataset.Subsets; IDataset pSubDataset = pESubDataset.Next(); while (pSubDataset != null) { pListFeaCls.Add(pSubDataset as IFeatureClass); pSubDataset = pESubDataset.Next(); } } pDataset = pEDataset.Next(); } return pListFeaCls; } catch { return null; } }
获取工作空间加的所以的Table
private IList<ITable> GetlistTable(IWorkspace pWs) { try { IList<ITable> pListFeaCls = new List<ITable>(); IEnumDataset pEDataset = pWs.get_Datasets(esriDatasetType.esriDTAny); IDataset pDataset = pEDataset.Next(); while (pDataset != null) { if (pDataset.Type == esriDatasetType.esriDTTable) { pListFeaCls.Add(pDataset as ITable); } pDataset = pEDataset.Next(); } return pListFeaCls; } catch { return null; } }
相关文章推荐
- C#实现Datatable排序的方法
- C#从DataTable获取数据的方法
- C#实现DataTable映射成Model的方法(附源码)
- C# DataTable使用方法详解
- C#实现从多列的DataTable里取需要的几列
- c# 如何将RadioButton与DataTable数据进行绑定
- C#实现DataTable转换成IList的方法
- C#使用DataSet Datatable更新数据库的三种实现方法
- C# DataTable的详细用法分享
- C#保存与读取DataTable信息到XML格式的方法
- C#中DataTable排序、检索、合并等操作实例
- C#中datatable序列化与反序列化实例分析
- C#中DataTable删除行的方法分析
- C# datatable 不能通过已删除的行访问该行的信息处理方法
- C#编程实现DataTable添加行的方法
- DataSet与DataTable的区别示例介绍
- C#获取变更过的DataTable记录的实现方法
- asp.net实现数据从DataTable导入到Excel文件并创建表的方法
- C#实现将DataTable内容输出到Excel表格的方法
- C#中csv文件与DataTable互相导入处理实例解析