'''diese klasse ersetzt null values durch den parameter 'NullReplaceValue' von der parameter tabelle
'''Achtung! dies funktioniert nicht mit allen daten typen! zur zeit ist der replace wert = -5648945
'''dies heisst, dass sämtliche unsigned, binary, Datums und boolean-Datentypen nicht unterstützt werden.
'''gut nachdenken befor neue datentypen hier eingetragen werden!
Public Class NullHandler
Public Shared _nullReplacerInt As Integer
Public Shared _nullReplacerStr As String
Shared Sub New()
_nullReplacerInt = Integer.Parse(Config.GetParameterValue("NullReplaceValue"))
_nullReplacerStr = Config.GetParameterValue("NullReplaceValue")
End Sub
Public Shared Function CToInt16(ByVal o As Object) As Int16
If o Is System.DBNull.Value Then
Return CShort(_nullReplacerInt)
Else
If TypeOf o Is Int16 Then
Return CShort(o)
End If
End If
End Function
Public Shared Function CToInt32(ByVal o As Object) As Int32
If o Is System.DBNull.Value Then
Return _nullReplacerInt
Else
If TypeOf o Is Int32 Then
Return CInt(o)
End If
End If
End Function
Public Shared Function CToInt64(ByVal o As Object) As Int64
If o Is System.DBNull.Value Then
Return CLng(_nullReplacerInt)
Else
If TypeOf o Is Int64 Then
Return CLng(o)
End If
End If
End Function
Public Shared Function CToSingle(ByVal o As Object) As Single
If o Is System.DBNull.Value Then
Return CSng(_nullReplacerInt)
Else
If TypeOf o Is Single Then
Return CSng(o)
End If
End If
End Function
Public Shared Function CToDouble(ByVal o As Object) As Double
If o Is System.DBNull.Value Then
Return CDbl(_nullReplacerInt)
Else
If TypeOf o Is Double Then
Return CDbl(o)
End If
End If
End Function
Public Shared Function CToDecimal(ByVal o As Object) As Decimal
If o Is System.DBNull.Value Then
Return CDec(_nullReplacerInt)
Else
If TypeOf o Is Decimal Then
Return CDec(o)
End If
End If
End Function
Public Shared Function CToString(ByVal o As Object) As String
If o Is System.DBNull.Value Then
Return _nullReplacerStr
Else
If TypeOf o Is String Then
Return CStr(o)
End If
End If
End Function
'''spezialfall wird auf DateTime.MinValue gesetzt
'''
Public Shared Function CToDateTime(ByVal o As Object) As DateTime
If o Is System.DBNull.Value Then
Return DateTime.MinValue
Else
If TypeOf o Is DateTime Then
Return CDate(o)
End If
End If
End Function
End Class