用于在相同或不同引擎数据源中复制数据集。将数据集复制到当前数据源中的数据集中。

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

语法

C#
public Dataset CopyDataset(
	Dataset srcDataset,
	string desDatasetName,
	EncodeType encodeType
)

参数

srcDataset
Type: SuperMap.Data..::.Dataset
要复制的源数据集。
desDatasetName
Type: System..::.String
目标数据集的名称。
encodeType
Type: SuperMap.Data..::.EncodeType
数据集的编码方式。

返回值

复制得到的数据集对象。

备注

注意:

复制数据集之前必须保证当前数据源已经打开而且可写;

复制数据集之前,可先调用 Datasets.IsAvailableDatasetName 方法来判断目标数据集的名称是否合法;并且目标数据集的名称不能使用数据库的关键字;

复制数据集时,可通过 encodeType 参数来对数据集的编码方式进行修改。有关数据集存储的编码方式,请参见 EncodeType 枚举类型。

由于 CAD 数据集不支持任何编码,对CAD数据集进行复制(CopyDataset)操作时设置的 EncodeType 无效,即只能置为 None。

在从 ImagePlugin 打开的数据源中复制数据集到其他数据集无效, 也不能向ImagePlugin数据源中复制数据集,因为这种引擎是只读的。

PostGIS作为复制的目标数据源时,复制后字段名统一存为小写。

示例

以下代码示范如何复制数据集。

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

CopyC#
public void TestCopyDataset(Workspace workspace, Datasource datasource)
{
    //获取目标数据集和目标数据源
    Datasource datasource = workspace.Datasources[0];
    Datasource datasourceDes = workspace.Datasources[1];
    DatasetVector datasetVector = datasource.Datasets["world"] as DatasetVector;

    //获得一个可用的数据集名称
    String datasetName = datasourceDes.Datasets.GetAvailableDatasetName("World_1");

    //将目标数据集复制到指定的数据源中。
    Dataset newDataset = datasourceDes.CopyDataset(datasetVector, datasetName, EncodeType.Int32);
}

版本信息

SuperMap iObjects .NET


请参见