VB.NET中类似于SQL中"ISNULL"的函数可用吗?
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日
你可以使用字符串方法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
用法:
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
直接回答你的问题,当使用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