IFeatureDataConverter.ConvertFeatureClass 执行报错问题解决
博主最近在用IFeatureDataConverter.ConvertFeatureClass方法将shp文件转为gdb文件时,一直报错,报错内容提示:The table was not found。排查发现是因为要素集命名不规范导致(当时要素集名称设为了数字)
转化代码如下:
IFeatureClassName pSreFeaclsName= null;
IDatasetName pOutDatasetName = null;
IFeatureClassName pOutFeatureClassName = null;
IFeatureDataConverter convert = null;
IFields pFields = null;
IGeometryDef pGeometryDef = null;
IFieldChecker fieldChecker = null;
pSreFeaclsName= (sourceFeatureClass as IDataset).FullName as IFeatureClassName;
fieldChecker = new FieldCheckerClass();
IFields sourceFeatureClassFields = sourceFeatureClass.Fields;
fieldChecker.InputWorkspace = sourceWorkspace;
fieldChecker.ValidateWorkspace = targetWorkspace;
fieldChecker.Validate(sourceFeatureClassFields, out enumFieldError, out pFields);
int iShapeField = pFields.FindField(sourceFeatureClass.ShapeFieldName);
pGeometryDef = pFields.get_Field(iShapeField).GeometryDef;
pOutFeatureClassName = new FeatureClassNameClass();
pOutDatasetName = (IDatasetName)pOutFeatureClassName;
pOutDatasetName.WorkspaceName = (targetWorkspace as IDataset).FullName as IWorkspaceName;
pOutDatasetName.Name = targetLayerName; ///// 不能为数字
convert = new FeatureDataConverterClass();
convert.ConvertFeatureClass(pSreFeaclsName, null, null, pOutFeatureClassName, pGeometryDef, pFields, "", 1000, 0);

在尝试使用IFeatureDataConverter的ConvertFeatureClass方法将shapefile转换为geodatabase文件时遇到错误:'Table was not found'。问题源于要素集名称不规范,特别是使用了数字作为名称。修正方法是确保要素集的命名符合ArcGIS的命名规则,避免使用数字作为开头。提供了一段转化代码示例,并强调了目标图层名称不应为数字。
930

被折叠的 条评论
为什么被折叠?



