当付款下拉列表字段未选择任何选项时,我们遇到500服务器错误。 db接受null。服务器日志文件输出以下错误:
800a005e | Invalid_use_of_Null:_'CInt'HTTP / 1.1
错误日志指向此行:
If cint(iPaymentIdRS) = cint(iPaymentId) then selPayment = selPayment & " selected "
注意:我们的ASP开发人员目前不可用,因此请您提供简单的答案。
If sOperation = "Edit" then
iPaymentId = Request.Form("cboPayment") :If iPaymentId = "0" then iPaymentId = null
'**********Payment**********************
selPayment = "<option value=""0"">"
Do While rs.EOF = false
iPaymentIdRS = rs("PaymentId")
selPayment = selPayment & "<option value=""" & iPaymentIdRS & """"
If cint(iPaymentIdRS) = cint(iPaymentId) then selPayment = selPayment & " selected "
selPayment = selPayment & ">" & rs("PaymentDesc")
rs.MoveNext
loop
我希望一个空(空)值不会返回500错误,但是会被接受。付款下拉列表字段不是必填字段。
答案 0 :(得分:2)
该错误是由于将CInt
应用于空变量而引起的。
iPaymentId
为0,则 Request.Form("cboPayment")
设置为null,然后CInt(iPaymentId)
尝试将iPaymentId
转换为整数,而不管其值如何。 VBscript中不允许将空变量转换为整数。
线路...
If CInt(iPaymentIdRS) = CInt(iPaymentId) Then selPayment = selPayment & " selected "
...如果iPaymentId
为空,则无需运行。要在运行比较之前验证iPaymentId
是否已分配了数值,请将其更改为:
If IsNumeric(iPaymentId) Then : If CInt(iPaymentIdRS) = CInt(iPaymentId) Then selPayment = selPayment & " selected "
如果iPaymentId
为null,则比较将不会运行,也不会发生错误。
答案 1 :(得分:0)
iPaymentId = Request.Form(“ cboPayment”) iPaymentId = iPaymentID + 0
应将其转换为整数,以便null,文本等值可以通过