阅读:2501回复:5
如何在sde数据库中(sql)成批的修改地理属性数据
<P>我们把地图通过sde存储到sql数据库中,现在要修改地理属性数据。比如有个名为管线的图层,要对它的材质一列进行数据添加。本来我们只是读取数据库中的管线表,然后通过sql语句进行修改。但是后来发现一个图层对应很多表,而属性数据好象也不止一个。由此得出修改数据还是要通过ae接口来实现。但是怎么样实现呢,步骤是什么样的?以实现象以前那样:把属性绑定到datagrid中,任意修改后直接保存即可。</P>
<P>请大家帮忙了</P> |
|
1楼#
发布于:2006-10-24 09:22
用IRow接口
|
|
|
2楼#
发布于:2006-10-28 11:55
<P> 程序可以运行,但是最后并没有保存,请老大指点</P>
<P> colNum2 = dataGrid1.CurrentCell.ColumnNumber; <BR> rowNum2 = dataGrid1.CurrentCell.RowNumber; <BR> object cellValue1 = dataGrid1[rowNum1, colNum1];</P> <P> IFeatureLayer feal=(IFeatureLayer)m_pCurrentLayer;<BR> IFeatureClass pLayerclass;<BR> pLayerclass=feal.FeatureClass ;<BR> ITable testtable=(ITable)pLayerclass;<BR> IEnumFeature pEnumFeat;<BR> IFeature pFeature;<BR> pEnumFeat=(IEnumFeature)axMapControl1.Map .FeatureSelection;<BR> pFeature=pEnumFeat.Next() ;</P> <P> IQueryFilter pFilter1;<BR> ISpatialFilter pSpatialFilter1;<BR> pSpatialFilter1=new SpatialFilterClass ();<BR> pSpatialFilter1.SpatialRel = ESRI.ArcGIS .Geodatabase .esriSpatialRelEnum .esriSpatialRelContains;<BR> pSpatialFilter1.GeometryField =pLayerclass.ShapeFieldName ;<BR> pFilter1=(IQueryFilter)pSpatialFilter1;<BR> pFilter1.AddField ("OBJECTID");<BR> pFilter1.WhereClause ="OBJECTID = "+pFeature.get_Value (0) ;<BR> IFeatureCursor pFeatCurNew;<BR> IFields pFieldsNew;<BR> IFeature pFeatNew;<BR> pFeatCurNew = pLayerclass.Update(pFilter1, false);<BR> pFeatNew=pFeatCurNew.NextFeature();<BR> if(pFeatNew!=null;;colNum1!=0)<BR> {<BR> pFeatNew.set_Value (colNum1,cellValue1);<BR> pFeatNew.Store();<BR> }</P> |
|
3楼#
发布于:2006-10-28 12:43
把数据库压缩下,看结果有没进去
|
|
|
4楼#
发布于:2006-10-29 09:16
<P>没有</P>
<P>还是没有存储进去的。。。</P> |
|
5楼#
发布于:2006-11-30 23:35
联系我,我告诉你解决办法,QQ:171567188
|
|
|