我正在做遗留应用程序的一些工作,而我的VB6技能并不是那么好。我需要检查String字段是否已初始化并设置为null / nothing或空字符串以外的其他字符串。在C#中,我只做了类似的事情:
if (string.IsNullOrEmpty(myObj.Str))
我不确定在VB6中与此相当的是什么,我对使用If myObj.Str = ""
并将其称为好而感到紧张。这样做的正确方法是什么?
为了澄清,如果以下任何一种情况属实,我想要一些会返回True的东西:
该字段最初为Long,我正在替换的代码检查它是否设置为0。
答案 0 :(得分:41)
VB6旨在轻松
使用
If str = "" Then
' uninitialised, null or empty ""
答案 1 :(得分:11)
满足您3项要求的最优化和最安全的方法如下:
If LenB(myObj.Str) = 0
Then Debug.Print "String is empty/null/not initialized"
Else Debug.Print "Not Empty"
答案 2 :(得分:3)
使用 Null 表示订单
使用 len (“ string ”)代替“ string ”=“”,因为它更快
Dim s As String
If Not (s Is Null) Then
MsgBox "SET"
if (len(s)>0) then
MsgBox "size > 0"
else
MsgBox "size = 0"
end if
Else
MsgBox "not SET"
End If
问候
答案 3 :(得分:2)
我试过,If str = ""
然后
但它不起作用。
确定给定字符串是否为空的最佳方法是:
If IsNull(str)
然后
'这将完美地运作
答案 4 :(得分:0)
由于'Nulls'和'Empty Strings'实际上是不同的值,这种方法可以很容易地捕获它们:
If strValue & "" = "" Then
'This is Null
Else
'This is NOT Null
End If
答案 5 :(得分:0)
只需将信息添加到MarkJ的答案中即可。如果您正在使用记录集,那么
if rs.fields.item("rsField").value = "" then
如果该项为null,则会抛出运行时错误。你应该这样做:
if rs.fields.item("rsField").value & "" = "" then
祝你好运。
答案 6 :(得分:0)
'使用VbNullstring可能是一种非常有效的方式
Dim YourString as string
dim HasValue as boolean
If YourString = vbnullstring then
HasValue = False
Else
HasValue = True
End if