用于在相同或不同引擎数据源中复制数据集。将数据集复制到当前数据源中的数据集中。
命名空间:
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); }