我想用下面的代码更改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;
}
}
}
答案 0 :(得分:0)
无法编辑字段的长度,实现此目的的唯一方法是创建新字段,将数据复制到新字段。 http://support.esri.com/de/knowledgebase/techarticles/detail/42783
IFieldEdit不应该用于改变现有的字段。从API参考:
创建新字段时使用IFieldEdit接口。您不应该使用它来修改字段,为此目的使用IClassSchemaEdit。通常,在修改字段时,ArcCatalog中适用的限制也适用于ArcObjects;例如,您无法更改字段的名称或类型。