2011-04-08 65 views
1

当我通过记录循环设置为它击中页面上立即显示出来,工作。传统的ASP错误,并没有错误消息

我做错了吗? stoneleft字段是一个varchar,它将其转换为整数(我尝试使用的测试记录为'100'),然后乘以0.31,然后转换为一个字符串,以便我可以将其显示在页面上。

+0

当我注释掉这一行它的工作原理,以及所有其他人员的显示就好了。 – gunwin 2011-04-08 00:20:02

+0

空白字段是否导致问题?不知道是否可以添加null或“”。虽然已经有一段时间了。我会在发生问题之前记录下该字段。 – dredful 2011-04-08 00:33:38

+0

我的猜测是rs(“stoneleft”)是null或不是数字。该例外将在此时破坏代码,导致不执行任何其他操作,例如,没有更多的rs(“”)会工作。 – Pepto 2011-04-08 00:35:06

回答

1

是,在CASP相当普遍的问题,它的出现自2000年之前这是一个数据库驱动的问题,特别是你的供应商。在您的连接字符串中,尝试更改为下面的内容。如果你不能,那么@stealthyninja建议。

问题

driver={SQL Server}; 

尝试(而不是上面)

driver=SQLNCLI; 
0

这很可能是你的数据库有空值或空值。

试试这个:

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 
0

@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