//比如我們給出了確定的圖層名,我們要獲取到該圖層具體有哪些字段?並取出來
//先獲取所有圖層及其名字
IMap pMap=axMapControl.Map;
ILayer pLayer=null;
for(int i=0;i<pMap.Layercount;i++)
{
pLayer=pMap.get_layer(i);
if (pLayer is IFeatureLayer)
comboBoxEdit1.Properties.Items.Add(layer.Name);
}
//根據需要獲取指定圖層layer
string layerName="";
ILayer layer=null;
for(int i=0;i<pMap.Layercount;i++)
{
if(pMap.get_layer(i).Name==layerName)
{
layer=pMap.get_layer(i);
}
}
//獲取指定圖層的所有字段名
IFeatureLayer featureLayer=layer as IFeatureLayer;
IfeatureClass featureclass=featureLayer.FeatureClass;
IFields fields=featureclass.fields;
for(int i=0;i<featureclass.fields.fieldcount;i++)
{
IField field=fields.get_field(i);
listBoxControl1.Items.Add(field.Name);
listBoxControl1.SelectedIndex = 0;
}
//獲取某個特定字段的所有值
IFeatureClass featureclass=featureLayer.FeatureClass;
//設定篩選條件獲得滿足要求的所有Feature
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "";
IFeatureCursor featurecursor=featureClass.search(queryFilter,false);
IFeature feature=featureCursor.NextFeature;
//獲取想要獲取的字段值的fieldName的id號
string name="";
int index=0;
for(int i=0;i<fields.fieldcount;i++)
{
IField field=fields.get_field(i);
if(field.Name==name)
{
indesx=i;
}
}
while(feature!=null)
{
listBoxControl2.Items.Add(feature.get_Value(index).ToString());
feature=featureCursor.NextFeature;
}