我的VB.NET代码中有这个:
Dim myValue as String
myValue = ""
Dim myDblValue as Double
myDblValue CDbl(Val(myValue))
如果myValue
字符串为null
[如本示例中所示],我想将值设置为预定义值,例如999
。我知道在SQL中我可以使用ISNULL
。 VB.NET中有没有相应的东西?如果没有,如何使用可用的功能?
答案 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)
您可以使用字符串方法IsNullOrEmpty
或IsNullOrWhiteSpace
创建自己的函数。
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