当我通过记录循环设置为它击中页面上立即显示出来,工作。传统的ASP错误,并没有错误消息
我做错了吗? stoneleft字段是一个varchar,它将其转换为整数(我尝试使用的测试记录为'100'),然后乘以0.31,然后转换为一个字符串,以便我可以将其显示在页面上。
当我通过记录循环设置为它击中页面上立即显示出来,工作。传统的ASP错误,并没有错误消息
我做错了吗? stoneleft字段是一个varchar,它将其转换为整数(我尝试使用的测试记录为'100'),然后乘以0.31,然后转换为一个字符串,以便我可以将其显示在页面上。
是,在CASP相当普遍的问题,它的出现自2000年之前这是一个数据库驱动的问题,特别是你的供应商。在您的连接字符串中,尝试更改为下面的内容。如果你不能,那么@stealthyninja建议。
问题
driver={SQL Server};
尝试(而不是上面)
driver=SQLNCLI;
这很可能是你的数据库有空值或空值。
试试这个:
If Len(rs("stoneleft") & "") > 0 Then
posLeft = Cstr((Cint(rs("stoneleft"))*0.31))
End If
这是等价的:
If IsNull(rs("stoneleft")) Or IsEmpty(rs("stoneleft")) Then
' don't do stuff!
End If
@Grant昂温:你应该始终分配行值变量,因此您可以在数据库中获取,让您的数据然后在你开始处理你的事情之前再出去。
Dim stoneLeft, posLeft
stoneLeft = rs("stoneleft")
If NOT IsNumeric(stoneLeft) OR IsNull(stoneLeft) Then
stoneLeft = 0
Else
stoneLeft = CInt(stoneLeft)
End If
posLeft = stoneLeft * 0.31
当我注释掉这一行它的工作原理,以及所有其他人员的显示就好了。 – gunwin 2011-04-08 00:20:02
空白字段是否导致问题?不知道是否可以添加null或“”。虽然已经有一段时间了。我会在发生问题之前记录下该字段。 – dredful 2011-04-08 00:33:38
我的猜测是rs(“stoneleft”)是null或不是数字。该例外将在此时破坏代码,导致不执行任何其他操作,例如,没有更多的rs(“”)会工作。 – Pepto 2011-04-08 00:35:06