zoukankan      html  css  js  c++  java
  • 添加新字段和域

    添加新字段和域

    一、添加新字段
        要在一张新表里或一个要素类里增加字段,只需创建一个新字段,并设置好它的属性,然后加入到字段集中即可。
    IFieldEdit pNewField = new FieldClass();
    pNewField.Name = "Average";
    pNewField.Type = esriFieldType.esriFieldTypeInteger;
    pNewField.AliasName = "Average Income";
    pNewField.Length = 16;
    pTable.AddField(pNewField);

    二、创建新的范围域或编码域
        Geodatabase表或要素类可以通过使用域的方法来增强属性值的有效性。域是在Geodatabase的层次上创建的,可以应用在该Geodatabase表中的任意多个字段中。
        Domain是抽象类,有2个可创建的子类:RangeDomain和Coded Value Domain。
        RangeDomain对象用来对数值型的属性值进行范围限制(最大值、最小值)
        CodedValueDomain对象用于定义一系列合适的可接受的值(字符串型或数值型)。
        每创建一个Domain,都需要设定其字段类型。例如,如果创建了一个适用于整型字段的域,那么这个域就不能被双精度型字段使用。

    IRangeDomain pRDomain = new RangeDomainClass();
    pRDomain.MinValue = 0;
    pRDomain.MaxValue = 100;
    IDomain pDomain = pRDomain as IDomain;
    pDomain.Name = "Diameter";
    pDomain.FieldType = esriFieldType.esriFieldTypeInteger;

    三、在Geodatabase中增加域
        创建好了域之后,并不能简单的应用到字段上,而必须先将其和一个Geodatabase关联起来。在Geodatabase中增加了域之后,它就可以被应用到这个Geodatabase中任何表或要素类的任意多个字段中(假设这些字段类型与该域相同)。增加域的方法是IWorkspaceDomains.AddDomain()。Domain不能应用于Shapefiles或ArcInfo Coverages。

    IWorkspaceFactory pAccessFact;
    IWorkspace pGDBWorkspace;
    pAccessFact = new AccessWorkspaceFactoryClass();
    pGDBWorkspace = pAccessFact.OpenFromFile("C:\\City.mdb", 0);

    IWorkspaceDomains pWSDomains = pGDBWorkspace as IWorkspaceDomains;
    pWSDomains.AddDomain(pRDomain);

    四、将域应用到字段
        使用IFieldEdit的Domain属性可以把一个Domain对象应用到某个具体的字段。由于这一属性是通过引用使用的,对域的修改会立即影响到应用该域的字段,域可以被同一个Geodatabase里的字段重复多次使用。

    IFieldEdit pNewField = new FieldClass();
    pNewField.Name = "Average";
    pNewField.Type = esriFieldType.esriFieldTypeInteger;
    pNewField.AliasName = "Average Income";
    pNewField.Length = 16;
    pNewField.Domain = pRDomain;
    pTable.AddField(pNewField);
        注意:域只有在它被加入到Geodatabase中之后才能被使用。如果pRDomain没用先被加入到Geodatabase中,代码不会返回错误,但是域并不起作用。

       


  • 相关阅读:
    Java Springboot webSocket简单实现,调接口推送消息到客户端socket
    对象实体和对象引用的区别
    SpringBoot中JPA使用动态SQL查询
    windows10环境安装RabbitMQ
    SpringBoot集成ElasticSearch
    SpringBoot+神通数据库+JPA
    【bug记录】jpa 解决org.hibernate.lazyinitializationexception could not initialize proxy
    mysql 语句中 sum函数求和 null 变 0
    springBoot文件下载跨域问题+前端访问后台下载方法不弹出下载框的问题
    C# HTTP Get Post 提交数据可以指定代理IP、指定浏览器、指定来源
  • 原文地址:https://www.cnblogs.com/lauer0246/p/1123057.html
Copyright © 2011-2022 走看看