У меня есть хранимая процедура, которая имеет некоторые параметры OUT
. Что касается стороны. NET, я озадачен тем, как проверить, является ли параметр нулевым, прежде чем преобразовать его в. NET Double?
. Я делал подобные вещи раньше в нескольких разных проектах и никогда раньше не сталкивался с этой проблемой ...
Это каждая комбинация, которую я пробовал:
Command.Parameters.Add("PparStsValue", OracleDbType.Decimal).Direction = ParameterDirection.Output
PparStsValue = If(IsDBNull(Command.Parameters("PparStsValue").Value) OrElse
IsNothing(Command.Parameters("PparStsValue").Value) OrElse
Command.Parameters("PparStsValue").Value.ToString = "",
Nothing,
CDbl(Command.Parameters("PparStsValue").Value.ToString))
Есть еще одна вещь, которую я сделал, которая работает, но это просто кажется смешным - проверить:
Command.Parameters("PparStsValue").Value.ToString = "null"
Это оценивается как True
, и поэтому я могу определить null ... Но почему нулевое значение преобразуется в строку "null"
? Это кажется несовместимым со всем остальным, что обычно конвертируется в ""
.
Кроме того, главный вопрос в том, почему ни IsDBNull
, ни IsNothing
не возвращают истину?