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图块也随之删除

  • 相关阅读:
    centos、mac的grafana安装和简单使用
    通过k8s(Kubernetes)搭建jmeter的压测环境master-slave架构,实现弹性伸缩
    burpsuite破解版
    jvm调优
    火狐firefox、谷歌chrome等浏览器扩展、插件介绍
    关于Chrome谷歌浏览器开发者工具网络Network中返回无数据的问题
    微博登录过程分析
    SQL SERVER大话存储结构(4)_复合索引与包含索引
    千万级别数据表,单列索引和多列索引性能对比
    Showplan 逻辑运算符和物理运算符参考
  • 原文地址:https://www.cnblogs.com/clgis/p/10100656.html
Copyright © 2011-2022 走看看