该类作为Recordset类的内部类,主要提供记录的批量更新的功能。
目前对批量更新功能的支持包括以下几点:
1.批量更新操作包括批量添加、批量更改、批量删除。
2.支持对 EngineType 中的可写文件型引擎和数据库型引擎类型数据源进行批量更新。
3.支持索引的自动维护,即当被更新的数据集有索引时,添加记录或者移动空间对象等操作会自动维护索引,不需要重新创建索引。
程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public class BatchEditor |
示例
以下3段代码分别示范如何进行批量修改、批量删除和批量添加。
假设打开一个工作空间workspace对象,工作空间中包含名为 World 的矢量数据集 dataset_world。
CopyC#
public void RecordsetBatchModify(Workspace workspace) { // 获取数据集 DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector; c // 获取记录集 Recordset recordset = dataset_world.GetRecordset(false, CursorType.Dynamic); // 获得记录集对应的批量更新对象 Recordset.BatchEditor editor = recordset.Batch; // 设置批量更新每次提交的记录数目 editor.MaxRecordCount = 5; // 开始批量修改,将 World 数据集中 Name 字段的字段值修改为序号 editor.Begin(); for (int i = 0; i<recordset.RecordCount; i++) { recordset.MoveTo(i); recordset.SetFieldValue("NAME", (object)i.ToString()); } // 批量操作统一提交 editor.Update(); // 释放记录集 recordset.Dispose(); }c
CopyC#
public void RecordsetBatchDelete(Workspace workspace) { // 获取数据集 DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector; // 获取记录集 Recordset recordset = dataset_world.GetRecordset(false, CursorType.Dynamic); // 获得记录集对应的批量更新对象 Recordset.BatchEditor editor = recordset.Batch; // 设置批量更新每次提交的记录数目 editor.MaxRecordCount = 5; // 开始批量删除,将 World 数据集的记录批量删除 editor.Begin(); for (int i = 0; i<recordset.RecordCount; i++) { recordset.MoveTo(i); recordset.Delete(); } // 批量操作统一提交 editor.Update(); // 释放记录集 recordset.Dispose(); }
CopyC#
public void RecordsetBatchAdd(Workspace workspace) { // 获取数据集 DatasetVector dataset_world = workspace.Datasources[0].Datasets["World"] as DatasetVector; // 通过模板 dataset_world 创建名为 example 的矢量数据集 dataset String name = "example"; DatasetVector dataset = workspace.Datasources[0].Datasets.CreateFromTemplate(name, dataset_world) as DatasetVector; // 获取记录集 Recordset recordset = dataset_world.GetRecordset(false, CursorType.Dynamic); Recordset recordset_example = dataset.GetRecordset(false, CursorType.Static); // 获得记录集对应的批量更新对象 Recordset.BatchEditor editor = recordset.Batch; // 设置批量更新每次提交的记录数目 editor.MaxRecordCount = 5; // 开始批量添加,将 example 数据集每条记录对应的几何对象添加到 World 数据集中 editor.Begin(); for (int i = 0; i<recordset_example.RecordCount; i++) { recordset_example.MoveTo(i); Geometry geo = recordset_example.GetGeometry(); recordset.AddNew(geo); } // 批量操作统一提交 editor.Update(); // 释放记录集 recordset_world.Dispose(); recordset.Dispose(); }
继承层次
System..::.Object
SuperMap.Data..::.Recordset..::.BatchEditor
SuperMap.Data..::.Recordset..::.BatchEditor