zoukankan      html  css  js  c++  java
  • 关系类处理专题之创建关系类|RelationShipClass

    /// <summary>
            /// 存在于数据库中的数据集中
            /// </summary>
            /// <param name="mdbPath">数据库路径</param>
            /// <param name="ORIFClassName">源要素类的名称</param>
            /// <param name="DESFClassName">目标要素类的名称</param>
            /// <param name="DatasetName">所在数据集的名称</param>
            /// <param name="newRSClassName">生成的关系类的名称</param>
            /// <param name="PrimaryKey">源表主键</param>
            /// <param name="ForeignKey">源表外键</param>
            /// <param name="isComposite">是否复合关系</param>
            public void createRelationShipClass(string mdbPath, string ORIFClassName, string DESFClassName, string DatasetName, string newRSClassName, string PrimaryKey, string ForeignKey, bool isComposite)
            {
                IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
                IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(mdbPath, 0);
                IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
                IFeatureClass pFeatureClassORI = pFeatureWorkspace.OpenFeatureClass(ORIFClassName);
                IFeatureClass pFeatureClassDES = pFeatureWorkspace.OpenFeatureClass(DESFClassName);
                IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(DatasetName);
                IRelationshipClassContainer pRSCContainer = pFeatureDataset as IRelationshipClassContainer;
    
                IRelationshipClass pRelationshipClass = pRSCContainer.CreateRelationshipClass(
                    newRSClassName,   //生成的关系类的名称
                    pFeatureClassORI,   // 参与生成的源要素类/表
                    pFeatureClassDES,   //参与生成的目标要素类/表
                    "",
                    "",
                    esriRelCardinality.esriRelCardinalityOneToMany,  //表间关系
                    esriRelNotification.esriRelNotificationForward,  //通知???
                    isComposite,          //是否复合关系
                    false,        //是否添加属性表
                    null,        //字段集信息
                    PrimaryKey,     //源表主键
                    "",
                    ForeignKey,     //源表外键
                    "");
            }
            /*测试数据*****
                string mdbPath = "c:/Users/Administrator/Desktop/GXLTest.mdb";
                string ORIFClassName="zd";
                string DESFClassName="zrz";
                string DatasetName="GXL";
                string newRSClassName="relation1";
                string PrimaryKey="zddm";
                string ForeignKey = "zddm";
                bool isComposite = true;
                createRelationShipClass(mdbPath,ORIFClassName,DESFClassName,DatasetName,newRSClassName,PrimaryKey,ForeignKey,isComposite);
            */

    使用测试文件

    提取密码:3td1

    创建完成之后,在Arcmap中删除zd中的图块,则他所对应的zrz图块也随之删除

  • 相关阅读:
    k3 cloud套打模板中出现单元格数据为空的情况,及无法正确的选择数据源
    k3 cloud中列表字段汇总类型中设置了汇总以后没有显示出汇总值
    k3 cloud查看附件提示授予目录NetWorkService读写权限
    k3 cloud中提示总账期末结账提示过滤条件太长,请修改此过滤条件
    金蝶云k3 cloud采购入库单校验日期不通过
    C# Code First 配置(二)
    C# Azure 远程调试
    C# ABP源码详解 之 BackgroundJob,后台工作(一)
    C# 在webapi项目中配置Swagger(最新版2017)
    高并发之
  • 原文地址:https://www.cnblogs.com/clgis/p/10100656.html
Copyright © 2011-2022 走看看