gisepi
路人甲
路人甲
  • 注册日期2005-08-20
  • 发帖数8
  • QQ
  • 铜币160枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1273回复:0

求助:修改当前选择要素指定字段的值

楼主#
更多 发布于:2012-10-16 20:02
<p><font face="Verdana">   图层是shp,错误提示:ifb.set_Value(fld, 10); 对COM<em>组件</em>的调用返回了错误 HRESULT E_FAIL<br/>     </font></p>
<p><font face="Verdana"></font> </p>
<p><font face="Verdana">     private void button1_Click(object sender, EventArgs e)<br/>        {<br/>            // 获得选中要素pFeature <br/>            IEnumFeature pSelected;<br/>            IFeature pFeature;<br/>            IFeatureLayer pFeatureLayer = (IFeatureLayer)m_CurrentLayer;<br/>            pSelected = (IEnumFeature)MainMap.Map.FeatureSelection;<br/>            pSelected.Reset();<br/>            pFeature = pSelected.Next();</font></p><font face="Verdana">
<p><br/>            IFields fis = pFeature.Fields;<br/>            IFeatureClass fc = pFeatureLayer.FeatureClass;     </p>
<p>            IFeatureBuffer ifb = fc.CreateFeatureBuffer();</p>
<p>            ifb = (IFeatureBuffer)pFeature;                </p>
<p>            //使要素处于编辑状态 <br/>            IDataset dataset = (IDataset)fc;<br/>            IWorkspace workspace = dataset.Workspace;<br/>            IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;<br/>            workspaceEdit.StartEditing(true);<br/>            workspaceEdit.StartEditOperation();</p>
<p>            //修改属性值 <br/>            int fld = fis.FindField("SO3");<br/>            ifb.set_Value(fld, 10);</p>
<p>            fld = fis.FindField("NOx");<br/>            ifb.set_Value(fld, "0.27");<br/>            pFeature.Store();//保存新创建或修改的要素</p>
<p>            workspaceEdit.StopEditOperation();<br/>            workspaceEdit.StopEditing(true);<br/>        }</font></p>
喜欢0 评分0
游客

返回顶部