web-dev-qa-db-ja.com

整数をヌルにする

データセットを介してSQLサーバーのデータベーステーブルを更新する更新関数があります。テーブルのフィールドの1つは整数であり、null値を受け入れます。したがって、更新関数にデータを入力するときに、関数が整数を必要とするときに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
15
Nick LaMarca

整数をNullに設定することはできません。 Word Integerの後に疑問符を追加して、整数を「null許容」にする必要があります。これで、_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

場合によっては、null許容整数ではなく、実際の整数として値にアクセスする必要があります。そのような場合は、単にアクセスするだけです

_intDLocation.Value

Nullableについてのすべてを読んでください ここ

33
Larsenal

これを試して:

Dim _dLocation As String = udDefaultLocationTextEdit.Text

Dim _intDLocation As Nullable(Of  Integer)

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

私のアプリケーションは、空白で始まる多くのラベル(Textプロパティ)を使用していますが、整数としてインクリメントする必要があるため、この便利な関数を作成しました。

    Public Shared Function Nullinator(ByVal CheckVal As String) As Integer
    ' Receives a string and returns an integer (zero if Null or Empty or original value)
    If String.IsNullOrEmpty(CheckVal) Then
        Return 0
    Else
        Return CheckVal
    End If
End Function

これは、その使用方法の典型的な例です。

Dim Match_Innings As Integer = Nullinator(Me.TotalInnings.Text)

楽しい!

0
Tony Gardner