2015-06-20 57 views
0

我想用波紋管代碼更改sdegeodatabse中的某些字符串字段。代碼運行沒有任何問題。但運行後,字段長度返回默認長度。我錯過了什麼?如何使用arcobject更改字段長度

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

這是不可能的編輯字段的長度,實現這一目標的唯一方法是創建一個新的領域,將數據複製到新的領域。 http://support.esri.com/de/knowledgebase/techarticles/detail/42783

IFieldEdit不應該用來改變現有的字段。從API參考:

創建新字段時使用IFieldEdit接口。你不應該用它來修改字段,爲此目的使用IClassSchemaEdit。通常,修改字段時,ArcCatalog中適用的限制也適用於ArcObjects;例如,您不能更改字段的名稱或類型。