zoukankan      html  css  js  c++  java
  • ArcGIS批量添加字段 AddField

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

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

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

           主要代码如下:       

           public ILayer pLayer;
           public IFeatureLayerpFLayer;
           public IFeatureClasspFC;
           public ILayerFieldspLayerFields;
           DataTable dt = new DataTable();
           private voidbtnAdd_Click(object sender, EventArgs e)
           {
                if(axMapControl1.LayerCount == 0)
                {
                   MessageBox.Show("请先加载添加字段的图层!");
                    return;
                }
                //循环所有图层
                for(int i = 0; i < axMapControl1.LayerCount;i++)
                {
                    try
                    {
                        pLayer =axMapControl1.get_Layer(i);
                        pFLayer = pLayer as IFeatureLayer;
                        pFC = pFLayer.FeatureClass;
                        pLayerFields = pFLayer as ILayerFields;
                        ITablepTable = (ITable)pFC;
                        //删除原来表中的数据,若不需要可以去除,在数据库有数据的情况下无法插入非空字段
                        pTable.DeleteSearchedRows(null);
                        IFieldnewField = new FieldClass();
                        IFieldEditfieldEdit = (IFieldEdit)newField;
                        fieldEdit.Name_2 = "字段名称";
                        //数据类型,这里以字符型为例
                        fieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
                        //字节长度
                        fieldEdit.Length_2 = 1;
                        //字段是否允许为空
                        fieldEdit.IsNullable_2 = false;
                       pFC.AddField(newField);                 
                    }
                    catch(Exception exc)
                    {
                        MessageBox.Show("添加失败" + exc.Message);
                    }
                }
            }

     

     

  • 相关阅读:
    php-beanstalkd消息队列类分享
    php curl抓取类分享
    df -i 100%时处理方法
    php生成红包
    PHP牛牛游戏算法
    Yii 框架不同逻辑处理方法统一事务处理
    Linux上web服务器搭建
    Linux 上pcntl安装步骤
    PHP错误级别设置
    day40 ,epoll,数据库相关概念
  • 原文地址:https://www.cnblogs.com/Jingkunliu/p/2452133.html
Copyright © 2011-2022 走看看