private Boolean FieldsCheck(string shapeFilePath, params string[] targetField) { _shapeOp.FilePath = shapeFilePath; IFeatureClass pFeatureClass = _shapeOp.OpenFeatureClass(); return(pFeatureClass.FieldExistCheck(targetField)); }
public void AddField(IFeatureClass pFeatureClass,string fieldName,esriFieldType fieldType) { //如果存在不必添加字段,直接返回 if (pFeatureClass.FieldExistCheck(fieldName)) return; var pField = new FieldClass(); var pFieldEdit = (IFieldEdit)pField; pFieldEdit.Name_2 = fieldName; pFieldEdit.Type_2 = fieldType; pFeatureClass.AddField(pFieldEdit); }
public void AddField(IFeatureClass pFeatureClass, string fieldName, esriFieldType fieldType) { //如果存在不必添加字段,直接返回 if (pFeatureClass.FieldExistCheck(fieldName)) { return; } var pField = new FieldClass(); var pFieldEdit = (IFieldEdit)pField; pFieldEdit.Name_2 = fieldName; pFieldEdit.Type_2 = fieldType; pFeatureClass.AddField(pFieldEdit); }
/// <summary> /// 检查所给的字段不为空 /// </summary> /// <param name="pFeatureClass"></param> /// <param name="fields"></param> /// <returns></returns> public static bool NotNullCheck(this IFeatureClass pFeatureClass, params string[] fields) { if (!pFeatureClass.FieldExistCheck(fields)) { return(false); } var fieldsIndex = pFeatureClass.FieldsIndex(fields); IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false); IFeature pFeature; bool flag = true; var indices = fieldsIndex as int[] ?? fieldsIndex.ToArray(); while ((pFeature = pFeatureCursor.NextFeature()) != null) { if (!indices.Any(index => pFeature.Value[index] == null)) { continue; } flag = false; break; } Marshal.ReleaseComObject(pFeatureCursor); return(flag); }
/// <summary> /// 判断要素类的字段是否存在 /// </summary> /// <param name="pFeatureClass">要素类</param> /// <param name="fields">字段集合</param> /// <returns>是否存在</returns> public static bool FieldExistCheck(this IFeatureClass pFeatureClass, IEnumerable <string> fields) { return(pFeatureClass.FieldExistCheck(fields.ToArray())); }