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中,代码不会返回错误,但是域并不起作用。

       


  • 相关阅读:
    快排笔记C++
    security+redis+jwt 一个登陆注册查询的例子
    centeros 配置好环境虚拟机下载(java git mysql maven nginx Python redis nodejs tomcat )
    ZwQueryInformationProcess 反调试代码
    c++ 创建进程设置窗口标题模拟键盘鼠标例子
    求一个数二进制中包含多少个1
    憨批是我
    憨批是我
    问卷星实现自动填表刷问卷(问卷星分析post协议实现 安卓版)
    前端面试题 -- 综合
  • 原文地址:https://www.cnblogs.com/lauer0246/p/1123057.html
Copyright © 2011-2022 走看看