C#AE获取对应要素的属性表,返回值为DataTable

#region//获取对应要素的属性表dataTable
        private static DataTable GetElementDataTable(IFeatureLayer pFLayer)
        {
            DataTable pdataTable = new DataTable();
            IFeatureClass pFeatureclass = pFLayer.FeatureClass;
            //获取图层属性目录
            IFields pFields = pFeatureclass.Fields;
            for (int i = 0; i < pFields.FieldCount; i++)
            {
                string FieldName = pFields.get_Field(i).AliasName;
                pdataTable.Columns.Add(FieldName,GetDataType(pFields.get_Field(i).Type.ToString()));
            }
            //游标
            IFeatureCursor pFeatureCursor;
            pFeatureCursor = pFeatureclass.Search(null, false);
            IFeature pFeature;
            pFeature = pFeatureCursor.NextFeature();
            while (pFeature != null)
            {
                DataRow row = pdataTable.NewRow();
                for (int i = 0; i < pFields.FieldCount; i++)
                {
                    string FieldValue = null;
                    FieldValue = Convert.ToString(pFeature.get_Value(i));
                    row[i] = FieldValue;
                }
                pdataTable.Rows.Add(row);
                pFeature = pFeatureCursor.NextFeature();
            }
            //指针释放
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);
            return pdataTable;
        }
        #endregion

猜你喜欢

转载自blog.csdn.net/qq_38370387/article/details/89145721
今日推荐