当前位置:   article > 正文

ArcGIS批量添加字段 AddField_arcgis字段名少一个字

arcgis字段名少一个字

前些日子做了一个数据库的修改工作,要为数据添加字段,数据为Geodatabase类型,里面有90多个图层,每个图层添加6个字段,一共要做2个小时左右,而且效率比较低,容易出错,因此想到了通过程序来解决。

       实现如下,首先先建立程序主窗体,包括TocControl,AxMapControl和ToolBarControl,设置好他们之间的Buddy属性,在ToolBarControl中添加基本工具(包含数据加载工具,用于加载操作数据)。

       地图加载进来,就可以对图层进行循环处理添加字段了。

       主要代码如下:   

  1. public ILayer pLayer;
  2. public IFeatureLayerpFLayer;
  3. public IFeatureClasspFC;
  4. public ILayerFieldspLayerFields;
  5. DataTable dt = new DataTable();
  6. private voidbtnAdd_Click(object sender, EventArgs e)
  7. {
  8. if(axMapControl1.LayerCount == 0)
  9. {
  10. MessageBox.Show("请先加载添加字段的图层!");
  11. return;
  12. }
  13. //循环所有图层
  14. for(int i = 0; i < axMapControl1.LayerCount;i++)
  15. {
  16. try
  17. {
  18. pLayer =axMapControl1.get_Layer(i);
  19. pFLayer = pLayer as IFeatureLayer;
  20. pFC = pFLayer.FeatureClass;
  21. pLayerFields = pFLayer as ILayerFields;
  22. ITablepTable = (ITable)pFC;
  23. //删除原来表中的数据,若不需要可以去除,在数据库有数据的情况下无法插入非空字段
  24. pTable.DeleteSearchedRows(null);
  25. IFieldnewField = new FieldClass();
  26. IFieldEditfieldEdit = (IFieldEdit)newField;
  27. fieldEdit.Name_2 = "字段名称";
  28. //数据类型,这里以字符型为例
  29. fieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
  30. //字节长度
  31. fieldEdit.Length_2 = 1;
  32. //字段是否允许为空
  33. fieldEdit.IsNullable_2 = false;
  34. pFC.AddField(newField);
  35. }
  36. catch(Exception exc)
  37. {
  38. MessageBox.Show("添加失败" + exc.Message);
  39. }
  40. }
  41. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/228129
推荐阅读
  

闽ICP备14008679号