VB.NET中类似的功能“ISNULL”可用于SQL吗?

时间:2014-06-11 00:05:41

标签: .net vb.net visual-studio

我的VB.NET代码中有这个:

Dim myValue as String
myValue = ""
Dim myDblValue as Double
myDblValue CDbl(Val(myValue))

如果myValue字符串为null [如本示例中所示],我想将值设置为预定义值,例如999。我知道在SQL中我可以使用ISNULL。 VB.NET中有没有相应的东西?如果没有,如何使用可用的功能?

4 个答案:

答案 0 :(得分:2)

要直接回答你的问题,当与String.IsNull方法一起使用时,IF运算符离ISNULL最近。

喜欢这个

    Dim myValue As String
    myValue = ""
    Dim myDblValue As Double

    Dim myDefaultValue As Double = 10.1 ' what ever you need

    myDblValue = If(String.IsNullOrEmpty(myValue), myDefaultValue, CDbl(myValue))

如果您需要担心myValue中的无效文本,那么您可以像这样使用Double.TryParse方法。

    Dim myValue As String
    myValue = ""
    Dim myDblValue As Double

    Dim myDefaultValue As Double = 10.1 ' what ever you need

    If String.IsNullOrEmpty(myValue) OrElse Not Double.TryParse(myValue, myDblValue) Then
        myDblValue = myDefaultValue
    End If

答案 1 :(得分:1)

If YourVariable.IsNullOrEmpty Then
     myValue = DoWhateverYouWant
Else
     DoOtherStuff
End If

答案 2 :(得分:1)

您可以使用字符串方法IsNullOrEmptyIsNullOrWhiteSpace创建自己的函数。

Public Function TestNull(value As String, defaultValue As String) as String
    If String.IsNullOrEmpty(value) Then
        Return defaultValue
    Else
        Return value
    End If
End Function

Usuage:

myDblValue = CDbl(Val(TestNull(myValue, "999")))

或者,由于您要转换为double,您可以使用Double.TryParse方法,如果因任何原因无法转换它将会失败

Public Function TestValidDecimal(value As String, defaultValue As Double) As Double
    Dim temp As Double
    If Double.TryParse(value, temp) Then
        Return temp
    Else
        Return defaultValue
    End If
End Function

答案 3 :(得分:0)

myDblValue = If(myValue = Nothing,999,CDbl(Val(myValue)))

OR

myDblValue = If(myValue ="",999,CDbl(Val(myValue)))

请参阅:

http://msdn.microsoft.com/en-us/library/bb513985(v=vs.90).aspx