hotfall
路人甲
路人甲
  • 注册日期2003-12-23
  • 发帖数17
  • QQ
  • 铜币163枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2400回复:3

[求助]c#编写InsertFeature程序

楼主#
更多 发布于:2004-11-19 18:27
<P>要用C#写代码向一个featureclass里加入一个feature</P>
<P>可是运行总是出错</P>
<P>请哪位帮我看看</P>
<P>private void button1_Click(object sender, System.EventArgs e)
  {
   IWorkspace ws = null;
   IWorkspaceFactory wsf = new AccessWorkspaceFactoryClass();
   IFeatureClass fc;
   string geodbname=@"E:<a href='http://www.gisempire.com/bbs/mailt=@"e:/' target="_blank" ><FONT color=#000000>\</FONT></A>首都机场\sdairport.mdb";
    
   ws = wsf.OpenFromFile(geodbname,0);
   IFeatureWorkspace fws=(IFeatureWorkspace)ws;</P>
<P>   fc =fws.OpenFeatureClass("allobjects");
    
   //开始编辑
   IFeatureBuffer featBuffer=fc.CreateFeatureBuffer();
   IWorkspaceEdit workspaceEdit;
   workspaceEdit =(IWorkspaceEdit) ws;
      
   workspaceEdit.StartEditing (true);
   workspaceEdit.StartEditOperation();</P>
<P>   //以下生成新feature
   IFeatureCursor featCursor= fc.Insert(true);
   IFeature feat = (IFeature)featBuffer;</P>
<P>   IPoint point;
   IGeometry geometry;
   object q;
   point=new PointClass();
   point.PutCoords(120,30);
   geometry=(IGeometry)point;
   featBuffer.Shape=geometry;
    
<FONT color=#2222dd>   featBuffer.set_Value(2,1);</FONT>
   q=featCursor.InsertFeature(featBuffer);
   featCursor.Flush();</P>
<P>   workspaceEdit.StopEditOperation();
   workspaceEdit.StopEditing (true);</P>
<P>  }</P>
<P>运行到蓝色的代码,就出现异常</P>
<P><FONT color=#d52b6f>未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在 test.exe 中。其他信息: 这个集合中找不到此项目。</FONT></P>
<P><FONT color=#000000>谢谢了</FONT></P>
<P><FONT color=#d52b6f></FONT></P>
[此贴子已经被作者于2004-11-19 18:39:46编辑过]
喜欢0 评分0
获得智慧,须以青春为代价
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-12-23 13:02
<P> 我曾经也出现过这种错误,后来使用IEditor就行了</P><P> UID pUid = new UIDClass();
    pUid.Value = "esriEditor.Editor";
    IEditor pEditor = null;
    pEditor = m_pApp.FindExtensionByCLSID(pUid) as IEditor;</P><P> 先设置pEditor开始编辑,然后开始更新要素<FONT color=#2222dd>featBuffer.set_Value(2,1);</FONT></P><P><FONT color=#2222dd>使用</FONT><FONT color=#000000>IWorkspaceEdit 设置开始编辑就不行,不知为什么!</FONT></P>
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-12-17 08:21
<P>   IFeature pfeature = pFeatureClass.CreateFeature
   Set pfeature.Shape = pGeometry
   pfeature.Store
</P><P>看看行不行!</P>
举报 回复(0) 喜欢(0)     评分
bias
路人甲
路人甲
  • 注册日期2004-02-19
  • 发帖数27
  • QQ
  • 铜币144枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-12-16 22:17
你要插入要素的要素类“allobjects”有几个字段?字段索引为2的字段是否存在?如果存在,该字段类型是否为数值型的?
举报 回复(0) 喜欢(0)     评分
游客

返回顶部