将记录集中源字段数组对应的记录,按照目标字段数组对矢量数据集追加行。

例如:将记录集中的b和c字段追加到矢量数据集的a和b字段中,其中,b和c字段组成源字段数组,a和b字段组成目标字段数组,调用该方法,将记录集的b和c的字段值逐行写到矢量数据集a和b字段下。

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

语法

C#
public bool Append(
	Recordset recordset,
	string[] sourceFields,
	string[] targetFields
)

参数

recordset
Type: SuperMap.Data..::.Recordset
源记录集对象。
sourceFields
Type: array< System..::.String >[]()[]
源字段数组,对应的是源记录集中的字段。
targetFields
Type: array< System..::.String >[]()[]
目标字段数组,对应的是矢量数据集中的字段。

返回值

追加成功返回 true,否则返回 false。

备注

使用该方法有以下几点注意事项:

1.系统字段不能作为目标字段,可以作为源字段。

2.目标字段数组中的所有字段必须在目标数据集中存在,如果目标字段数组中指定了矢量数据集中不存在的字段,则追加失败。

3.源字段数组中指定了记录集中不存在的字段,追加失败。

4.目标矢量数据集中未被指定的字段,所追加记录值按默认值赋值。

目标字段和源字段的字段类型有以下注意:

1.当目标字段的字段类型为整型时,源字段的字段类型的整型字节数要小于或等于目标字段的整型字节数,即当目标字段的类型为Int32时,源字段的字段类型可以为Int16或Int32;

2.当目标字段的字段类型为浮点型时,源字段的字段类型的精度必须小于或等于目标字段的类型精度,即当目标字段的类型为Double型时,源字段的类型可以为float或Double;

3.当目标字段的字段类型为字符或文本型时,源字段的字段的类型可以为二进制类型以外的所有类型;

4.当目标字段类型为日期型和二进制字段,源字段的字段类型要和其一致。

示例

以下代码示范如何向目标矢量数据集根据指定的记录集中的字段追加行。

假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象,该数据源下存在名为"Capital" 和"Point"的矢量数据集。

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

   // 获取源记录集
   Recordset srcRecordset = srcDataset.GetRecordset(false, CursorType.Static);

   // 源字段数组,数组中的字段必须在源记录集中存在
   String[] srcFieldsNames = new String[] {"NAME",  "DESCRIPTION", "URBAN_POP"};
   // 目标字段数组,数组中的字段必须在目标数据集中存在
   String[] tagFieldsNames = new String[] {"CAPITAL", "COUNTRY", "CAP_POP"};

   // 向目标数据集中追加行  
   if(tarDataset.Append(srcRecordset, srcFieldsNames, tagFieldsNames))
   {
        Console.WriteLine("追加成功!");
   }

   // 释放资源
   srcRecordset.Dispose();
   srcDataset.Dispose();
   tarDataset.Dispose();
}

请参见