开发环境:visual studio 2019
开发语言:vb.net
数据库:mysql,使用mysql 官方提供的mysqlconnecter进行链接。
问题描述:在执行一个sql查询时,有一个字段为空,如果直接获取这个字段的值就会报错,比如下面这样。
label1.text=reader.getstring(1)
reader是mysql连接器提供的一个对象,用来存放单向结果集。getstring(1)表示取出ID为1的字段的值,并转化成string。如果该字段为空,上面的语句就会报错。
如果想判断下对象是否为null,下面这样写也会报错:
if string.isnullorempty(reader.getstring(1)) then
xxxx
end if
因为reader.getstring()方法已经默认字段有值,并开始转换,所以会报错。正确的判断方法是
if isDBNull(reader(1))
end if
上面的写法中reader(1)会直接返回该字段的状态,用vb.net内置函数 isDBNull进行判断就行了。