更新指定图层指定字段的值

2016-01-28 16:35:26  访问(1430) 赞(0) 踩(0)



        /// <summary>
        /// 更新指定图层指定字段的值
        /// </summary>
        /// <param name="layerName"></param>
        /// <param name="dcName"></param>
        /// <returns></returns>
        public string Dev4UpdateLayerData
            (
                string layerName,
                string dcName
            )
        {
             

            FeatureLayer lyr = FeatureLayerGetByName
                (
                    layerName
                );

            if (lyr == null)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:没有找到" + layerName + "图层"
                    );
            }

            Table tb = lyr.Table;

            if (tb == null)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:没有找到" + layerName + "图层对应的Table"
                    );
            }

            if (tb.CurrentAccessMode == TableAccessMode.Write)
            {
                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:" + layerName + "图层已经被写锁定"
                    );
            }

            try
            {
                tb.BeginAccess(TableAccessMode.Write);
                object oValue = null;
                foreach (Feature fcar in tb)
                {
                    if (fcar == null)
                        continue;

                    oValue = fcar[dcName];

                    if (oValue == null)
                        fcar[dcName] = "1";
                    else
                        fcar[dcName] = "1" + oValue.ToString();

                    // 这个是关键 //
                    fcar.Update();
                }


            }
            catch (Exception err)
            {
                throw err;
            }
            finally
            {
                if (tb.CurrentAccessMode
                    ==
                    TableAccessMode.Write)
                {
                    if (tb != null 
                        && 
                        tb.CurrentAccessMode == TableAccessMode.Write)
                    {
                        tb.EndAccess();
                    }
                }
            }

            return Dev4ShowLayerData(layerName, dcName);

        }


标签:更新指定图层指定字段的值 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)