2011-04-08 64 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