从数据集中对比数据报错(已解决)
通过sql查询语句查询出结果集并把值传给values1(只有一个数字),用msgbox()可以看到里面的数据,为什么用这个数据和一个变量做比较时却提示我数据类型不匹配(红色部分)Dim expectvalue
expectvalue=1
'执行查询语句
objrsa.open "select count(*) from "&tablename&"where "&fieldname&"= '"&fieldvalue&"'" ,cnn,3,2
'比较查询结果与用例期望值是否相等
If not objrsa.eof Then
msgbox(objrsa("count(*)"))'显示结果为1
values1=objrsa("count(*)").value
If expectvalue=values1 Then
msgbox("==1")
else
msgbox("==0")
end if解决
[ 本帖最后由 centurystone 于 2008-8-7 18:12 编辑 ] 那就就强制转换下数据类型试下 一个是对象,一个是整型数据,这种情况下不能直接进行比较,VBS也不会做类型的自动转换。
改为If expectvalue=CInt(values1) Then试试 expectvalue可能是String类型的
values1是Int类型的
试试CInt(expectvalue)=values1 多谢楼上几位指点,已经解决了。我用了一种比较笨的方法,楼上的方法我会去试下。不过转成字符型的我已经试过了,不通过。下面是我的思路:把对象的数据和变量全都放到Global中,取出来时自然就是同一种类型了。:lol
If not objrsa.eof Then
' 存放到Global中
'获取Sheet表中数据
Set Sheet = DataTable.GetSheet("Global")
'读取Global表中A,B两列数据
Set Parameter1 = Sheet.GetParameter("A")
Set Parameter2 = Sheet.GetParameter("B")
' 将查询得到的实际记录数与预期记录数放入Global中等待对比
Parameter1.Value= objrsa("count(*)")
Parameter2.Value= expectvalue
' 判断预期记录数是否与实际查询得到的记录数相同
Select Case Parameter1=Parameter2
Case true
reporter.reportevent micpass,"返回结果码","1"
Case false
reporter.reportevent micpass,"返回结果码","0"
Case else
reporter.reportevent micpass,"返回结果码","-1,&":err.source,err.description&""
End Select
End if
页:
[1]