1.

IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() as IWorkspaceFactory2;

            IWorkspace workspace = workspaceFactory.OpenFromFile(@"E:\", );

            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;

            IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(“a”);

            IFeatureClass featureClass2 = featureWorkspace.OpenFeatureClass( "b");

            AddJoin aj = new AddJoin();

            aj.in_field = "ID";

            aj.in_layer_or_view = featureClass2; // @"E:\jhl\" + Functions.g_ROAD + "_SpatialJoin";

            aj.join_field = "FID";

            aj.join_table = @"E:\a.shp";

            //aj.out_layer_or_view = Functions.g_ROAD + "_SpatialJoin";

            aj.join_type = "KEEP_ALL";

            Geoprocessor gp = new Geoprocessor();

            //gp.OverwriteOutput = true;

            gp.Execute(aj, null);

2.

//// Build a memory relationship class.

            Type memRelClassFactoryType =Type.GetTypeFromProgID("esriGeodatabase.MemoryRelationshipClassFactory");

            IMemoryRelationshipClassFactory memRelClassFactory = (IMemoryRelationshipClassFactory)Activator.CreateInstance(memRelClassFactoryType);

            IRelationshipClass relationshipClass = memRelClassFactory.Open("a", featureClass2, "ID", (IObjectClass)featureClass,

                "FID", "Is Owned By", "Owns",esriRelCardinality.esriRelCardinalityOneToOne);

            // Open the RelQueryTable as a feature class.

            Type rqtFactoryType =Type.GetTypeFromProgID("esriGeodatabase.RelQueryTableFactory");

            IRelQueryTableFactory rqtFactory = (IRelQueryTableFactory)Activator.CreateInstance(rqtFactoryType);

            ITable relQueryTable = (ITable)rqtFactory.Open(relationshipClass, false, null,null, string.Empty, false, false);

3.

// Create the query definition.

            IQueryDef queryDef = featureWorkspace.CreateQueryDef();

            // Provide a list of tables to join.

            queryDef.Tables = "a,b";

            queryDef.Tables += "";

            // Set the subfields and the WhereClause (in this case, the join condition).

            queryDef.SubFields = "*";

            queryDef.WhereClause = "a.ID = b.FID + 1";

            // Make the new TableQueryName.

            IQueryName2 queryName2 = (IQueryName2)new TableQueryNameClass();

            queryName2.QueryDef = queryDef;

            queryName2.PrimaryKey = "ID";

            queryName2.CopyLocally = true;

            IDataset workspaceDataset = (IDataset)featureWorkspace;

            IWorkspaceName workspaceName = (IWorkspaceName)workspaceDataset.FullName;

            // Set the workspace and name of the new QueryTable.

            IDatasetName datasetName = (IDatasetName)queryName2;

            datasetName.WorkspaceName = workspaceName;

            datasetName.Name = "Join";

            // Open the virtual table.

            IName name = (IName)queryName2;

            ITable table = (ITable)name.Open();

Join Attributes的更多相关文章

  1. Arcgis, ArcEngine, Arcgis Server使用开发汇总 索引

    ArcGIS系列软件license及安装: Arcgis SDE10.1 和 Arcgis server10.1的授权文件license tnt_esri.dat Arcgis8.1安装license ...

  2. HANA SQLScript

    数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示 ...

  3. HTML解析类 ,让你不使用正则也能轻松获取HTML相关元素 -C# .NET

    功能: 1.轻松获取指元素HTML元素. 2.可以根据属性标签进行筛选 3.返回的都是Llist强类型无需转换 用过XElement的都知道 用来解析XML非常的方便,但是对于HTML的格式多样化实在 ...

  4. Octopus系列之开发过程各个技术点

    自定义了页面周期 使用唯一的一个VelocityEngine全局的静态实例,优化了小泥鳅blog中每次请求都要创建VelocityEngine实例对象,减少了对象的开销 通过UA判断请求来自的设备,从 ...

  5. EMC题2

    易安信笔试题分享:1 protected成员函数能被肿么调用2 “has-a” relationship是指的啥,答案有instance, reference, pointer等...3 int, c ...

  6. cratedb joins 原理(官方文档)

      JOINs are essential operations in relational databases. They create a link between rows based on c ...

  7. Data Management Technology(2) -- Data Model

    1.Data Model Model Is the abstraction of real world Reveal the essence of objects, help people to lo ...

  8. perl使用print输入数据到文件

    #!usr/bin/perl use utf8; #引入utf8模块 脚本内的字符串使用utf8作为编码格式 binmode(STDOUT,":encoding(gbk)"); # ...

  9. Delete,Update与LEFT Join

    UPDATE:UPDATE A SET ApproverID=NULL FROM [SH_MaterialApplyBuyBill] A LEFT JOIN [SH_MaterialApplyBuyB ...

随机推荐

  1. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理6

    接下来先做角色这一板块的(增删改查),首先要新建一个Role控制器,在添加一个RoleList的视图.表格打算采用的是bootstrap的表格. using System; using System. ...

  2. [Java入门笔记] 面向对象编程基础(三):成员变量和局部变量

    在类中,变量根据定义的位置不同,可以分为成员变量和局部变量.

  3. linux shell 变量

  4. Linux初学:(二)Shell环境与命令基础

    博客园(FOREVER_ENJOY):http://www.cnblogs.com/zyx1314/ 本文版权归作者所有:欢迎转载!请注明文章作者和原文连接 Shell是什么? 1. Shell作为应 ...

  5. ubuntu 12.04下安装openldap,slapd.conf找不到的解决方法

    https://help.ubuntu.com/12.04/serverguide/openldap-server.html ubuntu安装openldap经历了一系列挫折,网上找了半天资料都是一模 ...

  6. 3、DNS服务器功能(正向、反向解析)

    实验目的: 建立gr.org域的主名称服务器.解析: 名称 IP 用途 ns.gr.org        192.168.170.3          名称服务器 www.gr.org     192 ...

  7. VIM 常用命令

    1.当vi打开时默认为命令模式,要转入输入模式,需要按a或者i键. 命令模式下: :wq  保存并且退出 :w   只保存不推出 :q   不保存退出 :q!  不保存强制退出 :wq! 保存并强制退 ...

  8. 蓝牙BLE传输性能及延迟分析

    BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...

  9. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 更优美的Oracle数据库上的代码生成器

    代码生成器进行了改进,针对Oracle数据库生成更优美的代码.这样生成出来的代码,更像微软的风格,更像C#.NET的标准规范,阅读起来也更优美.把Oracle表字段名默认大写, 有_分割等进行了优化, ...

  10. [[iso教程]] 《4个月ios实体教程》全网最新、最全ios视频教程

    全网最新.最全ios视频教程 内容简介 <ios实体教程>主要介绍如何使用iOS提供的强大工具集创建iOS应用.全视频对iOS操作系统做了全面的介绍,首先讲解如何构建应用程序的用户界面,涵 ...