當我通過記錄循環設置爲它擊中頁面上立即顯示出來,工作。傳統的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