Make An Integer Null

I have an update function that updates an sql server db table through a dataset. One of the fields in the table is an integer and accepts null values. So when I am populating the update function I need a way to enter a null in when the function wants an integer.

I tried to do it this way but _intDLocation = "" throws an exception

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

Integers cannot be set to Null. You have to make the integer "nullable" by adding a question mark after the word Integer. Now _intDLocation is no longer a normal integer. It is an instance of 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

Later on, if you want to check for null you can use this handy, readable syntax:

If _intDLocation.HasValue Then
   DoSomething()
End If

In some cases you will need to access the value as an actual integer, not a nullable integer. For those cases, you simply access

_intDLocation.Value

Read all about Nullable here.


尝试这个:

Dim _dLocation As String = udDefaultLocationTextEdit.Text

Dim _intDLocation As Nullable(Of  Integer)

If Not String.IsNullOrEmpty(_dLocation) Then
     _intDLocation = Integer.Parse(_dLocation)
End If

_intDLocation = Nothing
链接地址: http://www.djcxy.com/p/7416.html

上一篇: C的三元运算符的惯用的Go等价物是什么?

下一篇: 整数空值