我在ArcGIS中有图层(要素类)。数据在Oracle 11g上。
我尝试更新一行中的字段但是当我feature.store
时出现错误
Class未获许可使用(HRESULT异常:0x80040112)
附加代码:
private void UpdateFeatures(IFeatureClass featureClass, IFeatureWorkspace featureWorkspace, List<FeatureValue> featureValues)
{
IFeatureCursor featureSearchCursor = null;
IWorkspaceEdit workspaceEdit = null;
try
{
workspaceEdit = (IWorkspaceEdit)featureWorkspace;
workspaceEdit.StartEditing(false);
// Start an edit operation and create a cursor.
workspaceEdit.StartEditOperation();
//IQueryFilter queryFilter = new QueryFilter();
//queryFilter.WhereClause = "Code = '" + featureValues[i].FieldName + "'";
//queryFilter.SubFields = "COMMENTS";
featureSearchCursor = featureClass.Search(null, false);
int fieldCodeIndex = featureClass.FindField("CODE");
int fieldIndex = featureClass.FindField("MODEL");
bool FieldEditable = featureWorkspace.OpenTable("Switch").Fields.get_Field(fieldIndex).Editable;
// Iterate through the features, updating the Type values.
IFeature feature = null;
while ((feature = featureSearchCursor.NextFeature()) != null)
{
object obj = feature.get_Value(fieldCodeIndex);
if (!(obj is DBNull))
{
FeatureValue featureValue = featureValues.Where(x => x.FieldName == obj.ToString()).FirstOrDefault<FeatureValue>();
if (featureValue != null)
{
int val = featureValue.FieldValue;
}
object obj1 = "123";
feature.set_Value(fieldIndex,obj1);
feature.Store();
break;
}
//Console.WriteLine("The new type: {0}", feature.get_Value(fieldIndex));
}
}
catch (COMException ex)
{
// Handle any errors that might occur on NextFeature().
richTextBox1.AppendText(ex.Message);
}
catch (Exception ex)
{
//handle general Errors
richTextBox1.AppendText(ex.Message);
}
finally
{
workspaceEdit.StopEditOperation();
// Stop the edit session.
workspaceEdit.StopEditing(true);
// Stop the edit operation.
// Since the edit operation is ending, release the cursor.
Marshal.ReleaseComObject(featureSearchCursor);
}
}
非常感谢您的任何建议。
答案 0 :(得分:0)
检查是否使用了正确的ArcGis许可级别。 对于AddIn / Extension所使用的许可级别将是&#34; ArcGIS Administrator&#34;中设置的许可级别。当您拥有多个许可时,桌面基本版&#39;经常设置,许可级别不足以编辑SDE数据库。
此处描述了此类错误:ESRI Error: Not Licensed
如果您需要扩展程序,请确保已启用并获得许可。
对于使用ArcObjects的StandAlone应用程序,您需要自己初始化许可证。 为此我建议使用ESRI文档AoInitialize CoClass 和Initialize Method
样品应该能够提供帮助