我有一个更新功能,可通过数据集更新sql server db表。表中的字段之一是整数,并接受空值。因此,当我填充更新函数时,我需要一种在函数需要整数时输入null的方法。

我试图这样做,但是_intDLocation = ""抛出异常

Dim _dLocation As String = udDefaultLocationTextEdit.Text
    Dim _intDLocation As Integer
    If _dLocation <> "" Then
        _intDLocation = Integer.Parse(udDefaultLocationTextEdit.Text)
    Else
        'NEED HELP HERE
        _intDLocation = ""
    End If

最佳答案

整数不能设置为Null。您必须通过在Integer一词后添加问号来使整数“可为空”。现在,_intDLocation不再是普通整数。它是Nullable(Of Integer)的实例。

Dim _dLocation As String = udDefaultLocationTextEdit.Text
Dim _intDLocation As Integer?
If _dLocation <> "" Then
    _intDLocation = Integer.Parse(udDefaultLocationTextEdit.Text)
Else
    _intDLocation = Nothing
End If


稍后,如果要检查null,则可以使用以下便捷的可读语法:

If _intDLocation.HasValue Then
   DoSomething()
End If


在某些情况下,您将需要以实际整数而不是可为空的整数访问该值。对于这些情况,您只需访问

_intDLocation.Value


阅读有关Nullable here的全部内容。

关于vb.net - 使整数为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3628757/

10-17 00:54