乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 30|回复: 3

很奇怪的错误提示:!dbobji.cpp@7227:eNotOpenForWrite

[复制链接]

14

主题

39

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
96
发表于 2017-11-2 14:16:00 | 显示全部楼层 |阅读模式
我明明是以写的模式打开的,为什么会出现这种错误呢?
刚接触C#  好多东西还在摸索,希望路过的高手帮下忙。
我先贴出部分代码:
  1. //这是另外一个类的,这两行应该是没问题的。
  2. mDoc = Application. DocumentManager. MdiActiveDocument;
  3. mDb = mDoc. Database;
  4. public class MySymbolTableRecord
  5. {
  6.    protected ObjectId AddEntity (BlockTableRecord btRecord, Entity ent)
  7.    {
  8.     ObjectId ObjId;
  9.     using (Transaction tran = mDb. TransactionManager. StartTransaction( ))
  10.     {
  11.      //调试的时候每次都是运行到这位置就出错了
  12.      //内部错误: !dbobji.cpp@7227:eNotOpenForWrite
  13.      ObjId = btRecord. AppendEntity(ent);
  14.      tran. AddNewlyCreatedDBObject(ent, true);
  15.      tran. Commit( );
  16.      }
  17.      return ObjId;
  18.      }
  19.      protected DBObject GetDBObject (ObjectId id, OpenMode mode)
  20.       {
  21.      DBObject dbObj;
  22.      using (Transaction tran = mDb. TransactionManager. StartTransaction( ))
  23.      {
  24.      dbObj = tran. GetObject(id, mode);
  25.      }
  26.      return dbObj;
  27.      }
  28. }
  29. public class Drawing : MySymbolTableRecord
  30. {
  31.      private BlockTableRecord mBlkTabRec;
  32.      private Calculation mCalc;
  33.      public Drawing ( )//构造函数
  34.      {
  35.      mBlkTabRec = GetDBObject(mDb. CurrentSpaceId, OpenMode. ForWrite) as BlockTableRecord;
  36.      mCalc = new Calculation( );
  37.      }
  38.      public ObjectId AddLine (Point2d ptStart, Point2d ptEnd)//画直线
  39.      {
  40.      Line line = new Line(mCalc. P2ToP3(ptStart), mCalc. P2ToP3(ptEnd));
  41.      return AddEntity(mBlkTabRec, line);
  42.      }
  43.    }

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2017-11-2 19:57:00 | 显示全部楼层
你这样是试图用第一个事务打开的块表记录 去添加第二个事务的实体...感觉有点怪怪 建议用事务做为参数 从头到尾用一个事务
回复

使用道具 举报

56

主题

309

帖子

15

银币

中流砥柱

Rank: 25

铜币
530
发表于 2017-11-3 09:23:00 | 显示全部楼层
不懂C#,不过new之后是不是应该open?
回复

使用道具 举报

14

主题

39

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
96
发表于 2017-11-4 19:10:00 | 显示全部楼层

嗯  应该是这样的  我把所有的代码放在一个一起就没出现这个情况了。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 05:12 , Processed in 0.249849 second(s), 60 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表