用于设定记录集中某一字段的值,成功则返回 true。

可开启批量编辑调用该接口对记录集进行批量修改。

命名空间:  SuperMap.Data
程序集:  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();
    }

版本信息

SuperMap iObjects .NET


请参见