IFeatureDataConverter.ConvertFeatureClass 执行报错问题解决

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值