データセットを介して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
整数を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についてのすべてを読んでください ここ 。
これを試して:
Dim _dLocation As String = udDefaultLocationTextEdit.Text
Dim _intDLocation As Nullable(Of Integer)
If Not String.IsNullOrEmpty(_dLocation) Then
_intDLocation = Integer.Parse(_dLocation)
End If
私のアプリケーションは、空白で始まる多くのラベル(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)
楽しい!