2014-07-20 108 views
0

我已经尝试了所有,但其没有工作VB脚本字符串比较错误

我得到一个科拉姆值形式的数据基地为

substatus=rsprefobj("isnotificationactive"); 

Response.write substatus 

它给了我后 - - > n

当我做

intcomaprestringval=StrComp(substatus,"n",vbTextCompare) 
    Response.write intcomaprestringval 

它(intcomaprestringval)给了我 - > 1,即使它们是相同的

我想利用基于数据库值一些决定,如果它的 “N” 或 “y”

If intcomaprestringval = 0 Then 
some 

Else 

some 
End If 

但是在我的情况下,StrComp()总是返回1是否数据库值是“n”或“y”:(

+1

也许'substatus'始于一个空白字符 –

+0

感谢@Entbark ...ü救了我的时间.. :) 我用 Dim myvalue myvalue =修剪(substatus) intcomaprestringval = StrComp(myvalue,“n”,vbTextCompare) – user1299132

回答

0

我已经使用TRIM()由@EntBark的建议

Dim myvalue 
myvalue=Trim(substatus) 
intcomaprestringval=StrComp(myvalue,"n",vbTextCompare) 
0

我编写了一个比较函数,如果2个值匹配或“No Match”如果他们不这样做。在这里它是:

Function Compare(str1, str2, comp) 
    str = "OK" 
    If StrComp(str1, str2, comp) <> 0 Then str = "No Match" 
    Compare = str 
End Function 

str1和STR2是2个值要比较和comp为比较的方法(0 =二进制比较和1 =文本比较)。我总是用0

,因此会使用这样的:

If Compare(substatus, "n", 0) = "OK" Then 

    ' Values match 

Else 

    'Values do not match 

End If 

希望它可以帮助

+1

包装它有什么意义? – Lankymart

+0

哈似乎毫无意义我知道,但我永远不会记得StrComp返回什么比赛以及它没有匹配返回什么,所以我这样做,我只是比较“确定”,并且在每次使用时都不必查找它它 –

0

关于你的测试:

intcomaprestringval=StrComp(substatus,"n",vbTextCompare) 

你设置vbTextCompare为0时在你的代码的早些时候?

+0

没有..它得到解决,因为它是额外的空间问题。我使用Trim()。 – user1299132