以下代码演示的是通过个人数据库打开要素类,并对指定的字段别名进行修改,其中,需要注意的是,不能通过Engine中的AxMapControl直接获得,如

  //直接获得IFeatureClass.
//ESRI.ArcGIS.Carto.ILayer lyr = mapCtrl_main.get_Layer(0);
//ESRI.ArcGIS.Carto.IFeatureLayer flyr = (ESRI.ArcGIS.Carto.IFeatureLayer)lyr;
//ESRI.ArcGIS.Geodatabase.IFeatureClass fc = flyr.FeatureClass;

  这样是不可以的:

 /// <summary>
/// 修改字段别名.
/// </summary>
/// <param name="personalWorkspacePath">个人数据库路径(当然可以为其他类型数据库),如"G:\doc\gis\1.400\data\pdb.mdb"</param>
/// <param name="featureClassName">要素类名,如"hyd1_4l_1"</param>
/// <param name="oriFieldName">原字段别名,如"FNODE_".</param>
/// <param name="desFieldName">新字段别名,如"fnode".</param>
private void AlterFieldAliasName(string personalWorkspacePath, string featureClassName, string oriFieldName, string desFieldName) {
//通过IFeatureWorkspace获得IFeatureClass.
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory wsf = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass();
ESRI.ArcGIS.Geodatabase.IWorkspace ws = wsf.OpenFromFile(personalWorkspacePath, );
ESRI.ArcGIS.Geodatabase.IFeatureWorkspace fws = (ESRI.ArcGIS.Geodatabase.IFeatureWorkspace)ws;
ESRI.ArcGIS.Geodatabase.IFeatureClass fc = fws.OpenFeatureClass(featureClassName); ESRI.ArcGIS.Geodatabase.ITable t = (ESRI.ArcGIS.Geodatabase.ITable)fc;
if (t.FindField(oriFieldName) == -) //无指定字段名.
return; ESRI.ArcGIS.Geodatabase.IObjectClass objClass = (ESRI.ArcGIS.Geodatabase.IObjectClass)fc;
ESRI.ArcGIS.Geodatabase.ISchemaLock slock = (ESRI.ArcGIS.Geodatabase.ISchemaLock)objClass;
try {
slock.ChangeSchemaLock(ESRI.ArcGIS.Geodatabase.esriSchemaLock.esriExclusiveSchemaLock);
ESRI.ArcGIS.Geodatabase.IClassSchemaEdit cSchemaEdit = (ESRI.ArcGIS.Geodatabase.IClassSchemaEdit)t;
cSchemaEdit.AlterFieldAliasName(oriFieldName, desFieldName);
MessageBox.Show("done");
}
catch (System.Exception ex) {
MessageBox.Show(ex.Message);
}
finally {
if (slock != null)
slock.ChangeSchemaLock(ESRI.ArcGIS.Geodatabase.esriSchemaLock.esriSharedSchemaLock);
}
}

Geodatabase - 修改字段别名(Field Alias)的更多相关文章

  1. django 修改字段后,同步数据库,失败:django.db.utils.InternalError: (1054, "Unknown column 'api_config.project_id_id' in 'field list'")

    问题原因是,修改字段后,同步失败了,然后执行查询的时候,就会提示这个错误,这个字段没有 最暴力的方法可以直接在数据库中修改字段,但是修改后,models没同步,可能会存在问题,因此开始我的百度之旅(这 ...

  2. Django文档——Model字段类型(Field Types)

    大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models ,内容是django ...

  3. mysql修改字段的语句写法

    http://www.111cn.net/database/mysql/50678.htm 下面为您介绍的sql语句都是mysql修改字段操作中的一些常用语句,如果您是一个刚刚接触mysql数据库的新 ...

  4. Elasticsearch之索引模板index template与索引别名index alias

    为什么需要索引模板? 在实际工作中针对一批大量数据存储的时候需要使用多个索引库,如果手工指定每个索引库的配置信息(settings和mappings)的话就很麻烦了. 所以,这个时候,就存在创建索引模 ...

  5. Java反射-修改字段值, 反射修改static final修饰的字段

    反射修改字段 咱们从最简单的例子到难, 一步一步深入. 使用反射修改一个private修饰符的变量name 咱们回到主题, 先用反射来实现一个最基础的功能吧. 其中待获取的name如下: public ...

  6. C# 属性(Property)和字段(Field)的区别

    导读: 近期学习过程中发现了一些问题,我的学习只是学习,敲代码就是敲代码,没有加入思考,也不问为什么就直接去敲人家写好的例子去敲,把知识都学死了,逐渐散失了思考能力,所以学习的兴趣大打折扣,正如那句话 ...

  7. 使用反射功能在Unity运行状态通过Inspector面板修改字段和调用方法

    使用反射功能在Unity运行状态通过Inspector面板修改字段和调用方法 效果展示 一个很简单的组件脚本 运行状态在Inspector面板可以随便修改字段和调用方法 方法调用日志 设计由来 最近在 ...

  8. 064——VUE中vue-router之使用路由别名定制(alias)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 修改字段结构之GP工具

    即然有这个需求,就有人这样做.有人写了GP工具直接来重命名字段名和字段别名.工具及源码下载链接为:http://www.t00y.com/file/90123888 加载到ToolBox中后,可直接运 ...

随机推荐

  1. 转:测试计划(出处:: 51Testing软件测试网--zfx081)

    测试计划阶段主要处于测试的先期准备阶段,在该阶段中主要是对将要进行的测试工作做一个整体的规划.包括一下内容:   1.测试目的和测试项目简介. 1.1测试目的:××××系统的测试计划有助于实现一下目标 ...

  2. 按钮点击效果jquery

    <html><head> <meta charset="UTF-8"> <title>QQ</title> <me ...

  3. php curl 基本用法

    <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"); curl_se ...

  4. kafak 命令使用

    本篇文章主要内容: kafka常用命令总结 一.kafka常用命令总结: 1.创建topic bin/kafka-topics.sh --create --zookeeper ip:port/chro ...

  5. python中如何单独测试一个函数的作用

    #!/usr/bin/python import os def get_env_varible(key): return os.getenv(key) if __name__ == '__main__ ...

  6. c语言实现BMP图像转换为灰度图

    当初是自己要装X,非要用c来写信息隐藏作业,装了X,就得付出实践.查了好久资料,到期末才把作业交了,这里总结一下. 这道题是将真彩图转换为灰度图. 关于BMP文件结构,这是困扰了我好久的问题,上网查了 ...

  7. Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting的区别

    引自http://blog.csdn.net/xianlingmao/article/details/7712217 Jackknife,Bootstraping, bagging, boosting ...

  8. Web2py也有意思的

    多学学,以后可以方便的自己写代码了. 对于各种WEB框架,这也是打一个基础的时候. 相信学入门了,对PHP的,JAVA的WEB框架,都是能理解更深入的. def index(): "&quo ...

  9. MyBatis insert后返回自增字段的值

    如下情况适用支持自增的DB,如MySQL.其他情况参见:MyBatis魔法堂:Insert操作详解(返回主键.批量插入) 1.model public class UserInfo { private ...

  10. MVC通俗演义系列开篇

         最近在读<世界史通俗演义>,发现这本书非常好,比从小上大的历史书好的多.读的开心之余,也不敢跟别人说,怕被说成“通俗”.这跟英文的技术类文章很像.英文中的IT类文章几乎是通俗形象 ...