根据指定的需要更新的字段名,用指定的表达式计算结果更新符合查询条件的所有记录的字段值。需要更新的字段不能够为系统字段,也就是说不可以为sm开头的字段(smUserID除外)。

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

语法

C#
public bool UpdateField(
	string fieldName,
	string expression,
	string attributeFilter
)

参数

fieldName
Type: System..::.String
需要更新的字段名。
expression
Type: System..::.String
指定的表达式。表达式可以是字段的运算或函数的运算。例如:"SMID" 、"abs(SMID)"、"SMID+1"、 " '字符串'"。
attributeFilter
Type: System..::.String
要更新记录的查询条件,如果 attributeFilter为空字符串,则更新表中所有的记录。

返回值

更新字段成功返回true,否则返回false。

示例

假设打开了一个工作空间workspace,工作空间中有一个矢量数据集(datasetVector),数据集包含字段 Pop_1994,代表1994年的人口数目。

以下代码示范如何对数据集中的字段进行更新操作。

CopyC#
public void TestUpdateField(Workspace workspace, Datasource datasource)
{
    // 取出数据源中名为 "World" 的矢量数据集(datasetVector)
    DatasetVector datasetVector = (DatasetVector)datasource.Datasets["World"];

    //对数据集中名为 Pop_1994 的字段,将该字段中大于一百万的数值统一更新为“1000000”。
    datasetVector.UpdateField("Pop_1994", "1000000", "Pop_1994 > 1000000");
    Console.WriteLine("更新完成");
}

请参见