阅读:1481回复:2
删除图层属性 DeletField
<P>我在用Arcgisengine和c#做图层属性的修改,包括添加和删除.添加已经正常实现,但是删除却出了问题.代码如下,具体过程为首先得到图层的IFeatureClass ,然后进行属性的添加删除.<BR> IWorkspace ws = null;</P>
<P> IPropertySet pPropSet = new PropertySetClass();<BR> IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass();<BR> IFeatureWorkspace asd;</P> <P> pPropSet.SetProperty("SERVER", 登录.sname );<BR> pPropSet.SetProperty("INSTANCE", "5151");<BR> pPropSet.SetProperty("DATABASE", "sde");<BR> pPropSet.SetProperty("USER", "sde");<BR> pPropSet.SetProperty("PASSWORD", "sde");<BR> pPropSet.SetProperty("VERSION", "sde.DEFAULT");<BR> <BR> asd = (IFeatureWorkspace)pSdeFact.Open(pPropSet, 0);<BR> ws=pSdeFact.Open(pPropSet, 0);<BR> String[] ll=AddSDEData.layername ;<BR> <BR> pLayerclass=asd.OpenFeatureClass (Form1.tablename ); </P> <P>这时候pLayerclass正常得到,因为程序中要读取它的属性内容,正常得到.</P> <P> IFieldsEdit pFieldsEdit; <BR> IFields pfields;<BR> IField pfield;<BR> pfields = pLayerclass.Fields ;<BR> pfield = pfields.get_Field (pfields.FindField (this.comboBox2 .Text .ToString ()));<BR> pLayerclass.DeleteField (pfield);</P> <P>通过pfield = pfields.get_Field (pfields.FindField (this.comboBox2 .Text .ToString ()));<BR>已经得到了这个属性,但是在删除的时候就会提示the table is locked或者不存在一个GDB_NETDATESET表,不知道怎么回事,大家帮忙看看啊</P> |
|
1楼#
发布于:2007-05-31 09:38
确认你删除的字段不是图层保留字段.如shape,fid,area,lenth这样的
|
|
2楼#
发布于:2007-05-31 10:28
我删除的是我自己通过AddField方法加上去的字段,不会不能删除吧<br>
|
|