乐筑天下

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

给字典中添加键值时出现问题,求教!!

[复制链接]

4

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
24
发表于 2011-4-20 22:07:00 | 显示全部楼层 |阅读模式
DBDictionary nod4 = (DBDictionary)trans.GetObject(nodSw3, OpenMode.ForWrite);
                Xrecord xrec = new Xrecord();
                xrec.Data = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataWorldXCoordinate, new Point3d(10, 10, 0)));
                ObjectId nodSw4 = nod4.SetAt("PM_qyPoint1", xrec);
                trans.AddNewlyCreatedDBObject(xrec, true);
                xrec.Data = new ResultBuffer(new TypedValue((int)DxfCode.XCoordinate, new Point3d(20,20,0)));
                ObjectId nodSw5 = nod4.SetAt("PM_qyPoint2",xrec);
                trans.AddNewlyCreatedDBObject(xrec, true);
这段代码的最后一句调试时报错 说无法创建。
求教是怎么个情况啊!
回复

使用道具 举报

8

主题

138

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2011-4-21 08:17:00 | 显示全部楼层
nod4是nod3的引用吧,nod3不是已经在database里了吗?
回复

使用道具 举报

4

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
24
发表于 2011-4-23 18:39:00 | 显示全部楼层
我试验了一下 发现给字典添加键值 一个commit只能添加一个键值。 程序改成下面这个样子就能执行了不知道我理解的对不对。还请大家指教。
public class testNod1
    {
        Database db = HostApplicationServices.WorkingDatabase;
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
        ObjectId objTemp = new ObjectId();
        [CommandMethod("tesc")]
        public void Test()
        {
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                DBDictionary nod = (DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForWrite);
                DBDictionary sw_database = new DBDictionary();
                ObjectId nodSw = nod.SetAt("sky_sw9527_database", sw_database);
                trans.AddNewlyCreatedDBObject(sw_database, true);
                DBDictionary nod1 = (DBDictionary)trans.GetObject(nodSw, OpenMode.ForWrite);
                DBDictionary swGC_database = new DBDictionary();
                ObjectId nodSw1 = nod1.SetAt("GC1", swGC_database);
                trans.AddNewlyCreatedDBObject(swGC_database, true);
                DBDictionary nod2 = (DBDictionary)trans.GetObject(nodSw1, OpenMode.ForWrite);
                DBDictionary swPM_database = new DBDictionary();
                ObjectId nodSw2 = nod2.SetAt("PMCD", swPM_database);
                trans.AddNewlyCreatedDBObject(swPM_database, true);
                DBDictionary nod3 = (DBDictionary)trans.GetObject(nodSw2, OpenMode.ForWrite);
                DBDictionary swPM1_database = new DBDictionary();
                ObjectId nodSw3 = nod3.SetAt("PM1", swPM1_database);
                trans.AddNewlyCreatedDBObject(swPM1_database, true);
                DBDictionary nod4 = (DBDictionary)trans.GetObject(nodSw3, OpenMode.ForWrite);
                Xrecord xrec = new Xrecord();
                xrec.Data = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataWorldXCoordinate, new Point3d(10, 10, 0)));
                ObjectId nodSw4 = nod4.SetAt("PM_qyPoint1", xrec);
                trans.AddNewlyCreatedDBObject(xrec, true);
                objTemp = nodSw3;
                trans.Commit();
            }
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                DBDictionary nod4 = (DBDictionary)trans.GetObject(objTemp, OpenMode.ForWrite);
                Xrecord xrec = new Xrecord();
                xrec.Data = new ResultBuffer(new TypedValue((int)DxfCode.Bool, true));
                ObjectId nodSw5 = nod4.SetAt("PM_qykObjectId", xrec);
                trans.AddNewlyCreatedDBObject(xrec, true);
                trans.Commit();
            }
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                DBDictionary nod4 = (DBDictionary)trans.GetObject(objTemp, OpenMode.ForWrite);
                Xrecord xrec = new Xrecord();
                xrec.Data = new ResultBuffer(new TypedValue((int)DxfCode.ExtendedDataWorldXCoordinate, new Point3d(10, 10, 0)));
                ObjectId nodSw6 = nod4.SetAt("PM_qyPoint2", xrec);
                trans.AddNewlyCreatedDBObject(xrec, true);
                trans.Commit();
            }
        }
    }
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 12:54 , Processed in 0.336595 second(s), 58 queries .

© 2020-2025 乐筑天下

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