arcgis 中通过字段计算器vb代码进行字段操作——土地利用现状数据库中应用实例

一、项目背景

        在国土三调现状数据库中,地类图斑图层和城镇村范围是两个独立的图层,二者合并后会有字段名不统一的问题,如:合并后的三大类字段部分为空。为解决此问题,可采用如下办法(vb语法编写):

        逻辑思路:如果三大类字段中不为空,新字段按三大类字段,如果三大类字段为空,说明此图斑为城镇村范围内,新字段按“建设用地”。

二、涉及VB语法(Null和Empty)

        在VB(Visual Basic)中,是两个具有不同含义的特殊值,它们用于表示变量或表达式的不同状态。以下是它们的详细区别:

一、定义与用途

        Null 定义:Null是一个特殊的值,表示一个变量或表达式不包含有效的数据。它通常用于数据库编程中,以表示未知或缺失的数据。 用途:当一个变量或表达式被赋值为Null时,它表示该变量或表达式没有被初始化或没有有效的值。在VB中,如果一个变量的值为Null,尝试对其调用方法或属性可能会导致错误,因为Null不是一个有效的数据类型,它没有任何方法或属性可用。 判断:可以使用IsNull函数来判断一个表达式是否为Null。例如:If IsNull(myVariable) Then ...。 Empty 定义:Empty也是一个特殊的值,但它用于表示一个还没有被初始化的变量。它通常用于Variant类型的变量中。 用途:Empty是Variant变量定义后的默认值,表示该变量尚未被赋予任何值。与Null不同,Empty并不表示数据缺失或未知,而只是表示变量尚未初始化。 运算行为:当Empty参与数值运算时,它被视为0;当参与字符串运算时,它被视为空字符串("");当参与布尔条件运算时,它被视为False。 判断:可以使用IsEmpty函数来判断一个变量是否为Empty。但请注意,IsEmpty函数只对Variant类型的变量返回有意义的信息。例如:If IsEmpty(myVariant) Then ...。

二、主要区别

        数据类型: Null可以赋给任何变量类型(但通常用于Variant类型),表示该变量没有有效的数据。 Empty主要用于Variant类型的变量,表示该变量尚未被初始化。 运算行为: Null在参与运算时,通常会导致整个表达式的结果为Null(除非在特定的数据库查询或函数中有特殊处理)。 Empty在参与数值、字符串或布尔条件运算时,有明确的替代值(0、""、False)。 判断方法: 使用IsNull函数来判断一个表达式是否为Null。 使用IsEmpty函数来判断一个Variant类型的变量是否为Empty。

三、注意事项

        在VB中,尝试对Null值调用方法或属性会导致错误,因为Null不是一个有效的数据类型。因此,在访问Null值之前,应该使用IsNull函数进行检查。 Empty值在参与运算时会自动转换为相应的替代值(0、""、False),这有助于避免在代码中处理未初始化变量时出现错误。 综上所述,Null和Empty在VB中具有不同的定义、用途和运算行为。了解它们的区别有助于在编程中正确处理这两种特殊值。

三、实例应用

        三大类字段为空的情况(包含null和empty两种类型)语法为:case IsNullOrEmpty

代码如下:

Dim density
''三大类合并城镇村:by qq:443440204
''说明:此代码按土地报批要求,043 和0404 荒草地归类为农用地,如依据三调工作分类,需手工更正到未利用地
select case  [三大类] 
case IsNullOrEmpty
density ="建设用地"

 case else
density=[三大类]  
end select

结果如下:全部字段完成录入。

同理,一级类合并代码如下:

Dim density
''一级类合并城镇村:by qq:443440204
''说明:此代码按土地报批要求,043 和0404 荒草地归类为农用地,如依据三调工作分类,需手工更正到未利用地
select case  [CZCLX]
case IsNullOrEmpty
	density =[一级类]  
case else
	density=[CZCLX]
end select

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值