一、1. 打開ArcSDE中的FeatureClass: OpenFeatureClass(String) —> 得到featureClass對象
2. 建立遊标IFeatureCusor : featureClass.insert(true);
3. 建立IFeatureBuffer : featureClass.CreateFeatureBuffer();
4. 調用IFeatureBuffer 的set_value函數設定字段的值,在這之前要獲得字段的整數索引。設定IFeatureBuffer的Shape(IGeometry)。
5. 調用 IFeatureCusor的insertFeature(IFeatureBuffer).
6. 調用 IFeatureCusor的flush()函數更新到FeatureClass。
注意:在arcsde裡打開featureclass時候如果該featureclass 已經注冊,則擷取遊标featurecusor會失敗,
解決方法:1、取消版本注冊,然後在擷取featurecusor。(取消版本注冊後,要素無法編輯)
2、使用featureworkspaceEdit 編輯。
workspaceEdit.StartEditing(true);
workspaceEdit.StartEditOperation();
IFeatureCursor featureCursor = featureClass.Insert(true);
featureOID = featureCursor.InsertFeature(featureBuffer); featureCursor.Flush();
//Stop editing
workspaceEdit.StopEditOperation();
workspaceEdit.StopEditing(true);
關于SDE注冊版本 權限注意的說明
二、不使用IFeatureCursor和IFeatureBuffer,直接使用IFeatureClass的CreateFeature()方法,然後d調用Store()方法送出。