从源数据集向目标数据集追加字段,并根据关联字段查询结果对字段进行赋值。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public bool AppendFields(
	DatasetVector sourceDataset,
	string sourceLinkFieldName,
	string targetLinkFieldName,
	string[] sourceFields
)

参数

sourceDataset
Type: SuperMap.Data..::.DatasetVector
源数据集。
sourceLinkFieldName
Type: System..::.String
源数据集中的与目标数据集的关联字段。
targetLinkFieldName
Type: System..::.String
目标数据集中的与源数据集的关联字段。
sourceFields
Type: array< System..::.String >[]()[]
源数据集中被追加到目标数据集的字段名集合。

返回值

一个布尔值,表示追加字段是否成功,成功返回 true,否则返回 false。

备注

  1. 如果指定的源数据集中被追加到目标数据集的字段名集合的某字段在源数据集中不存在,则忽略此字段,只追加源数据集中存在的字段;
  2. 如果指定了追加字段在目标数据集中相对应的字段名集合,则按所指定的字段名在目标数据集中创建所追加的字段;当指定的字段名在目标数据集中已存在时,则自动加_x(1、2、3...)进行字段的创建;
  3. 如果在目标数据集中创建字段失败,则忽略此字段,继续追加其它字段;
  4. 必须指定源字段名集合,否则追加不成功;
  5. 使用重载接口 AppendFields(DatasetVector sourceDataset,String sourceLinkFieldName, String targetLinkFieldName, String[] sourceFields) ,可以不必指定目标字段名集合;
  6. 一旦指定目标字段名集合,则此集合中字段名必须与源字段名集合中的字段名一一对应。

示例

以下代码示范如何向目标数据集追加字段,并根据关联字段查询结果对字段进行赋值。

假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象。

CopyC#
public void AppendFieldsTest(Workspace workspace, Datasource datasource)
{
   // 从中取出名为 "World" 的矢量面数据集 dataset_world 作为源数据集,以及名为 "Capital" 的矢量点数据集作为目标数据集。
   DatasetVector dataset_world = (DatasetVector)datasource.Datasets["World"];
   DatasetVector dataset = (DatasetVector)datasource.Datasets["Capital"];

   // 定义关联字段
   String targetLinkFieldName = "Capital";
   String sourceLinkFieldName = "Capital";

   // 定义源数据集中被追加到目标数据集的字段名集合
   String[] sourceFields = new String[] { "SMID", "SMAREA", "SMPERIMETER", "Country"};

   // 向目标数据集追加字段
   dataset.AppendFields(dataset_world, sourceLinkFieldName, targetLinkFieldName, sourceFields);
}

版本信息

SuperMap iObjects .NET


请参见