哪位好心人能否给小弟提供一个关于C#结合ArcGIS Engine开发的源码!主要实现的功能是修改选中要素的属性值,并保存,对单要素进行修改就可以了!

解决方案 »

  1.   

    RLAlterFrm RLalter = new RLAlterFrm();
                RLalter.ShowDialog();                string AlterID = RLalter.textBox1.Text;
                    string AlterRP = RLalter.textBox2.Text;
                    string AlterC = RLalter.textBox3.Text;
                       
                axMapControl1.ClearLayers();
                        axMapControl1.Refresh();                    try
                        {
                            string strFileName = Application.StartupPath + @"\数据\Roadlamp.mxd";
                            //在数据视图中加载地图,供查询操作
                            if (axMapControl1.CheckMxFile(strFileName))
                            {
                                axMapControl1.LoadMxFile(strFileName);
                            }
                            else
                            {
                                MessageBox.Show("错误的数据路径:" + strFileName);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error01 in MainForm.cs" + ex.Message);
                        }
                        axMapControl1.Refresh();                    string strQK = RLalter.getQueryKey();//获取查询值                    //找到图层
                        IFeatureLayer pfeaturelayer = new FeatureLayer();
                        pfeaturelayer = axMapControl1.get_Layer(0) as IFeatureLayer;                    //找到要素
                        IQueryFilter pQueryFilter = new QueryFilter();
                        pQueryFilter.WhereClause = "[RL_ID] = '" + strQK + "'";                    IFeatureCursor pFeatureCur = pfeaturelayer.Search(pQueryFilter, false);                    IFeature pFeature = null;                    pFeature = pFeatureCur.NextFeature();                    if (null == pFeature)
                        {
                            MessageBox.Show("对不起!该元素不存在");
                        }                    else
                        {
                            IFields pFields = pFeature.Fields;
                            IFeatureClass pFeatureClass = pfeaturelayer.FeatureClass;                        //修改属性值 
                            int field1 = pFields.FindField("RL_ID");
                            int field2 = pFields.FindField("RL_RP");
                            int field3 = pFields.FindField("RL_C");
                            pFeature.set_Value(field1, AlterID);
                            pFeature.set_Value(field2, AlterRP);
                            pFeature.set_Value(field3, AlterC);
                            pFeature.Store();
                            MessageBox.Show("修改成功!","提示");
                        }
            }