king1302217
路人甲
路人甲
  • 注册日期2007-10-25
  • 发帖数5
  • QQ
  • 铜币134枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1192回复:1

关于WorkspaceEdit 的 UndoEditOperation问题???

楼主#
更多 发布于:2008-04-09 14:42
<P>  最近想做个关于地图编辑方面的程序,就是在地图上创建图形,修改图形形状,大小之类的,用的是AE+C#.但是当我从地理数据库中读取featureclass到map layer中时,进行图元编辑,编辑完成后,保存编辑.程序运行到pWorkspaceEdit.StopEditOperation();</P>
<P>还没执行pWorkspaceEdit.StopEditOperation(true);</P>
<P>编辑的结果就已经存入了地理数据库中的featureclass中,不知道为什么会这样?</P>
<P>但是同样的代码,我从shp文件中读取数据到layer中,程序运行到pWorkspaceEdit.StopEditing(true); 才会将结果保存.不知道为什么从地理数据库中读的featureclass到layer中运行到pWorkspaceEdit.StopEditOperation();  就早早的保存完了结果.</P>
<P>粗略代码如下</P>
<P> IPropertySet pOutSDEPropset = new PropertySetClass();<BR>            pOutSDEPropset.SetProperty("USER", "sde");<BR>            pOutSDEPropset.SetProperty("PASSWORD", "wyf");<BR>            pOutSDEPropset.SetProperty("VERSION", "SDE.DEFAULT");<BR>            pOutSDEPropset.SetProperty("SERVER", "agrs-luxiangdong");<BR>            pOutSDEPropset.SetProperty("INSTANCE", "esri_sde");<BR>            IWorkspaceFactory WorkspaceFactory = new SdeWorkspaceFactoryClass();<BR>            FeatureWorkspace = (IFeatureWorkspace)WorkspaceFactory.Open(pOutSDEPropset, 0);<BR>            IFeatureLayer pflayer = new FeatureLayerClass();<BR>            IFeatureClass lfeatureclass = FeatureWorkspace.OpenFeatureClass("buildingmap");<BR>            pflayer.FeatureClass = lfeatureclass;<BR>            pflayer.Name = lfeatureclass.AliasName;</P>
<P>      axMapControl1.Map.AddLayer((ILayer)pflayer);</P>
<P> IDataset pDataset = (IDataset) pflayer.FeatureClass; </P>
<P> IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pDataset.Workspace;</P>
<P>pWorkspaceEdit.StartEditing(true);                                  <BR>pWorkspaceEdit.EnableUndoRedo(); </P>
<P>pWorkspaceEdit.StartEditOperation(); </P>
<P>编辑过程..........</P>
<P> pWorkspaceEdit.StopEditOperation();  //程序到这一步就已经把结果存入进去了</P>
<P> pWorkspaceEdit.UndoEditOperation();  //此时已经不能撤销更改了</P>
<P> pWorkspaceEdit.StopEditing(true);      //最后这一句对结果保存没什么影响了,反正地理数据库中的结果已经改变了  </P>
喜欢0 评分0
king1302217
路人甲
路人甲
  • 注册日期2007-10-25
  • 发帖数5
  • QQ
  • 铜币134枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-04-09 14:44
<P>第三行写错了 是</P>
<P>还没执行pWorkspaceEdit.StopEditing(true); </P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部