/// <summary>
/// 获得要素图层的属性表
/// </summary>
/// <param name="pFeatureLayer">要素图层对象</param>
/// <returns>数据表对象</returns>
public static DataTable GetDataTableFromFeatureLayer(IFeatureLayer pFeatureLayer)
{
if (pFeatureLayer == null)
{
return new DataTable();
}
IFields pFields = new Fields();
pFields = pFeatureLayer.FeatureClass.Fields;
DataTable pDataTable = new DataTable();
for (int i = 0; i < pFields.FieldCount; i++) //获得字段名
{
string fldName;
fldName = pFields.get_Field(i).AliasName;
pDataTable.Columns.Add(fldName);
}
IFeatureCursor pFeatureCursor;
pFeatureCursor = pFeatureLayer.FeatureClass.Search(null, false);
IFeature pFeature;
pFeature = pFeatureCursor.NextFeature();
while (pFeature != null)
{
string fldValue = null;
DataRow dr = pDataTable.NewRow();
for (int i = 0; i < pFields.FieldCount; i++)
{
string fldName;
fldName = pFields.get_Field(i).Name;
if (fldName == "Shape")
{
fldValue = Convert.ToString(pFeature.Shape.GeometryType);
}
else
{
fldValue = Convert.ToString(pFeature.get_Value(i));
}
dr[i] = fldValue;
}
pDataTable.Rows.Add(dr);
pFeature = pFeatureCursor.NextFeature();
}
return pDataTable;
}
获得要素图层的属性表
最新推荐文章于 2024-07-16 13:53:16 发布