如何使用arcobject更改字段长度

时间:2015-06-20 05:25:17

标签: c# database field geo arcobjects

我想用下面的代码更改sdegeodatabse中的一些字符串字段。代码运行没有任何问题。但运行后,归档长度返回默认长度。我错过了什么?

static void writetablecode(IDataset dataset)
        {
            ITable table = dataset as ITable;

            IFieldsEdit fields = table.Fields as IFieldsEdit;
            for (int i = 0; i < fields.FieldCount; i++)
            {
                IFieldEdit field = fields.Field[i] as IFieldEdit;
                if (field.Type==esriFieldType.esriFieldTypeString & field.Length<30 )
                {
                    field.Length_2  = 30;
                }

            }
        }

1 个答案:

答案 0 :(得分:0)

无法编辑字段的长度,实现此目的的唯一方法是创建新字段,将数据复制到新字段。 http://support.esri.com/de/knowledgebase/techarticles/detail/42783

IFieldEdit不应该用于改变现有的字段。从API参考:

  

创建新字段时使用IFieldEdit接口。您不应该使用它来修改字段,为此目的使用IClassSchemaEdit。通常,在修改字段时,ArcCatalog中适用的限制也适用于ArcObjects;例如,您无法更改字段的名称或类型。