用于设定记录集中某一字段的值,成功则返回 true。
可开启批量编辑调用该接口对记录集进行批量修改。
程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public bool SetValues( Dictionary<string, Object> values ) |
参数
- values
- Type: System.Collections.Generic..::.Dictionary<(Of <(String, Object>)>)
需要设置的属性值,键为字段名称,值为对应字段的值。注:如果所自定的字段名称在记录集中不存在,对应的值就忽略。
返回值
设定成功返回true,否则返回false。示例
以下代码示范如何批量修改。
假设存在一个工作空间workspace,工作空间中存在一个数据源 datasource 对象,该数据源包含名为 World 的矢量数据集 dataset_world。在World数据集中有两个属性字段,代表人口的"pop"和代表国家名字的"name",通过以下代码可以实现将"pop"和"name"的属性值分别批量修改为"1000000"和"supermap"。
CopyC#
public void SetValuesTest(Workspace workspace) { // 获取数据集 Workspace workspace = new Workspace(); Datasource datasource = workspace.Datasources[0]; DatasetVector dataset_world = datasource.Datasets["World"] as DatasetVector; String name = "example"; DatasetVector dataset = workspace.Datasources.CopyDataset(dataset_world, name, EncodeType.None) as DatasetVector; // 获取记录集 Recordset recordset = dataset.GetRecordset(false, CursorType.Dynamic); Dictionary<String,Object> values = new Dictionary<String,Object>(); values.Add("pop",1000000); values.Add("Name","supermap"); // 获得记录集对应的批量更新对象 Recordset.BatchEditor editor = recordset.Batch; // 设置批量更新每次提交的记录数目 editor.MaxRecordCount = 50; // 批量更新操作开始 editor.Begin(); while (!recordset.IsEOF) { recordset.SetValues(values); recordset.MoveNext(); } // 批量操作统一提交 editor.Update(); // 释放记录 recordset.Dispose(); }