IFieldChecker用法总结
创建shp文件时,如果从远程数据库复制字段时,由于内部字段结构不一致,容易造成字段错误,生成的shp无法查看属性表,错误提示:
Could not load data from the data source. If you can correct the problem, press the refresh button to reload data. Possible problems can include bad network connection, invalid field, etc.
A column was specified that does not exist.
解决方法如下:
IFieldChecker pFieldsChecker;
IFields Fields =pSorFeaCls.Fileds;
IClone pSource = Fields as IClone;
IClone pTmp = pSource.Clone();
IFields pSourceFields = pTmp as IFields;
pFieldsChecker = new FieldCheckerClass();
pFieldsChecker.ValidateWorkspace=pWorkspace;
IFields validatedFields = null;
IEnumFieldError enumFieldError = null;
pFieldsChecker.Validate(pSourceFields, out enumFieldError, out validatedFields);
IFeatureClass pFeaCls = (pWorkspace as IFeatureWorkspace).CreateFeatureClass(FeatureClassName, validatedFields, null, null, FeatureType, sShapeFld, ConfigWord);