当可空整数得到空值时不执行命令

When nullable integer got null value not executing the command

我有 VB.Net 代码,该代码从 db 中获取值,如果它为空,则做一些工作

While reader.Read
            tocken = reader.GetInt16("Tocken_No")
            If tocken.HasValue = False Then
                TxtPTocken.Text = 1
            Else
                TxtPTocken.Text = tocken + 1
            End If
        End While

Else 语句工作正常但第一部分不工作。 token 是可为空的短。我缺少什么?请帮忙

该代码没有意义。您正在呼叫 GetInt16,这意味着您将获得一个 Int16。您的 tocken 变量可能是 Nullable(Of Short) 类型,但您正在为其分配一个值,因此 HasValue 将始终为 True.

您的问题是,如果您的数据库字段为 NULL,那么您的代码将抛出异常。如果没有可用的预期类型的​​值,GetIn16 等方法将失败。检查 NULL 并相应地处理由您决定:

tocken = If(reader.IsDBNull(reader.GetOrdinal("Tocken_No")),
            CType(Nothing, Short?),
            reader.GetInt16("Tocken_No"))