我正在vb.net中运行查询,我想测试列是否为空。我试过了:
If reader.GetString(2) IsNot Nothing Then If IsDBNull(reader.GetString(2)) Then If reader.GetString(2) IsNot NULL Then If NOT reader.GetString(2) IS Nothing Then If NOT reader.GetString(2) IS NULL Then
但它们都返回:
Data is Null. This method or property cannot be called on Null values.
当我在MySQL中运行查询时,列显示 NULL
NULL
问题是在GetString内部将行值转换为字符串的方法。如果行值为null,则将获得异常。
GetString
该修复程序正在使用VB.NET三元运算符
Dim result = IF(reader.IsDbNull(2), "", reader.GetString(2))
或者,如果您不想在第三个字段为null时分配默认值,则可以简单地编写
if Not reader.IsDbNull(2) Then ....... End if