VB.NET中类似于SQL中"ISNULL"的函数可用吗?

15 浏览
0 Comments

VB.NET中类似于SQL中"ISNULL"的函数可用吗?

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

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

如果我的myValue字符串是null [像这个例子一样],我想将值设置为一个预定义值,例如999。我知道在SQL中可以使用ISNULL实现。在VB.NET中是否有相当的实现?如果没有,可以使用哪些可用函数来实现?

admin 更改状态以发布 2023年5月23日
0
0 Comments

你可以使用字符串方法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

用法:

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

0
0 Comments

直接回答你的问题,当使用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

0