zoukankan      html  css  js  c++  java
  • ArcEngine对属性表的操作

    1. 删除字段
    /// <summary>
            /// 删除字段
            /// </summary>
            /// <param name="layer">目标要素类</param>
            /// <param name="fieldName">需要删除的字段</param>
            /// <returns></returns>
            static public bool DeleteField(IFeatureClass layer, string fieldName)
            {
                try
                {
                    ITable pTable = (ITable)layer;
                    IFields pfields;
                    IField pfield;
                    pfields = pTable.Fields;
                    int fieldIndex = pfields.FindField(fieldName);
                    pfield = pfields.get_Field(fieldIndex);
                    pTable.DeleteField(pfield);
                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
    

      2.添加字段

      /// <summary>
            /// 添加字段
            /// </summary>
            /// <param name="layer">目标要素类</param>
            /// <param name="fieldName">需要添加的字段</param>
            /// <param name="AliasName">需要添加的字段的别名</param>
            /// <param name="length">字段的长度</param>
            /// <returns></returns>
            static public bool AddField(IFeatureClass layer, string fieldName, string AliasName, int length)
            {
                try
                {
                    ITable pTable = (ITable)layer;
    
                    IFieldEdit pFieldEdit = new FieldClass()
                    {
                        IFieldEdit_Type_2 = esriFieldType.esriFieldTypeString,
                        IFieldEdit_AliasName_2 = AliasName,
                        IFieldEdit2_Name_2 = fieldName,
                        IFieldEdit_Length_2 = 50,
                        IFieldEdit_DefaultValue_2 = "-",
                        IFieldEdit_IsNullable_2 = true
                    };
                    pTable.AddField(pFieldEdit);
                    return true;
    
                }
                catch (Exception ex)
                {
                    return false;
                }
            }
    

      3.编辑属性,像属性表中的行写入属性

       static public void UpadateTable(IFeatureClass pFeatClass, List<FeatureCate> group1)
            {
                ITable pTable = pFeatClass as ITable;
    
                ICursor pCursor = pTable.Update(null, false);
                IRow pRow = pCursor.NextRow();
                int indexOfBSM = pFeatClass.FindField("BSM");
                int indexOfLZ_1 = pFeatClass.FindField("LZ");
                int indexOfZYSZ_1 = pFeatClass.FindField("ZYSZ");
                int indexOfZDGN_1 = pFeatClass.FindField("ZDGN");
                if (indexOfBSM == -1 || indexOfLZ_1 == -1 || indexOfZYSZ_1 == -1)
                {
                    MessageBox.Show("未找到字段");
                }
                while (pRow != null)
                {
                    string TableBSM = pRow.get_Value(indexOfBSM).ToString();
                    for (int i = 0; i < group1.Count; i++)
                    {
                        if (TableBSM == group1[i].BSM)
                        {
                            pRow.set_Value(indexOfLZ_1, group1[i].LZ_1);
                            pRow.set_Value(indexOfZYSZ_1, group1[i].ZYSZ_1);
                            pRow.set_Value(indexOfZDGN_1, group1[i].ZDGN_1);
                            pCursor.UpdateRow(pRow);
                        }
    
                    }
                    pRow = pCursor.NextRow();
                }
    
            }
    

      

  • 相关阅读:
    联赛前第五阶段总结
    陶陶摘苹果 —— 线段树维护单调栈
    联赛前第三阶段总结
    联赛前第四阶段总结
    [NOIP
    超级跳马 —— 矩阵快速幂优化DP
    我的博客园美化
    Wedding —— 2-SAT
    C++运算符优先级
    water——小根堆+BFS
  • 原文地址:https://www.cnblogs.com/1521681359qqcom/p/13234063.html
Copyright © 2011-2022 走看看