Types 经典ASP类型不匹配

Types 经典ASP类型不匹配,types,asp-classic,Types,Asp Classic,我在使用经典ASP上的会话变量时遇到一些问题。 在下面代码的第19行,我得到了一个“类型不匹配:'I'”错误 debug.asp是session.asp中包含的一个模块,session.asp是我程序中的另一个模块 会话“数字”实际上是字符串。如果需要整数,请使用: i = CInt(Session("debugEntries")) 会话“数字”实际上是字符串。如果需要整数,请使用: i = CInt(Session("debugEntries")) 在调用initDebug()方法之前

我在使用经典ASP上的会话变量时遇到一些问题。 在下面代码的第19行,我得到了一个“类型不匹配:'I'”错误

  • debug.asp是session.asp中包含的一个模块,session.asp是我程序中的另一个模块
会话“数字”实际上是字符串。如果需要整数,请使用:

i = CInt(Session("debugEntries"))
会话“数字”实际上是字符串。如果需要整数,请使用:

i = CInt(Session("debugEntries"))

在调用
initDebug()
方法之前,您正在调用
debugMsg()
方法,这会导致
Session(“debugEntries”)
为空,结果只是一个空字符串

当尝试将字符串转换为整数时,确实会出现类型不匹配错误,请注意,
i=i+1
将尝试自动转换

要解决此问题,请确保始终首先调用
initDebug()
,或添加“故障保护”代码:


在调用
initDebug()
方法之前,您正在调用
debugMsg()
方法,这会导致
Session(“debugEntries”)
为空,结果只是一个空字符串

当尝试将字符串转换为整数时,确实会出现类型不匹配错误,请注意,
i=i+1
将尝试自动转换

要解决此问题,请确保始终首先调用
initDebug()
,或添加“故障保护”代码:


哦,对不起,我忘了声明我已经尝试过了,如果我尝试过,错误是类型不匹配:第18行的“CInt”。哦,对不起,我忘了声明我已经尝试过了,如果我尝试过,错误是类型不匹配:第18行的“CInt”。第17行的会话(“debugEntries”)的值是多少?你能做一个响应吗?在调用第18行之前写下并检查值?我试试。第一次调用时应该是0,但我会检查。很好的建议。第17行的Session(“debugEntries”)值多少?你能做一个响应吗?在调用第18行之前写下并检查值?我试试。第一次调用时应该是0,但我会检查。很好的建议。伙计们,这就是为什么你们不相信自动调用的方法。它确实有用!谢谢D@Vladimir干杯,但你说的“自动呼叫”是什么意思?ASP不会单独调用一个方法。好吧,不,它不起作用。应用故障保护后,错误跳转到函数jsDebugList()上的“for n=0 to i-2”行,我猜这只是在必要时对每个点应用更改的问题。然而,在执行此操作之后,我在同一行上再次遇到相同的错误,即现在第21行上的类型不匹配,即://If IsEmpty(Session(“debugEntries”)),然后//I=0//Else//I=Session(“debugEntries”)。噢,“自动调用”是指InitSession(包含InitDebug的方法)应该是在必要的时候被叫来的。问题是,这个应用程序上的几乎所有代码都不是我的,所以我必须想当然地认为某些东西是可以工作的。注释不支持代码格式。请使用新代码(使用failsafe)编辑您的问题,并指出哪一行会导致错误?伙计们,这就是为什么您不信任自动调用的方法。它确实有用!谢谢D@Vladimir干杯,但你说的“自动呼叫”是什么意思?ASP不会单独调用一个方法。好吧,不,它不起作用。应用故障保护后,错误跳转到函数jsDebugList()上的“for n=0 to i-2”行,我猜这只是在必要时对每个点应用更改的问题。然而,在执行此操作之后,我在同一行上再次遇到相同的错误,即现在第21行上的类型不匹配,即://If IsEmpty(Session(“debugEntries”)),然后//I=0//Else//I=Session(“debugEntries”)。噢,“自动调用”是指InitSession(包含InitDebug的方法)应该是在必要的时候被叫来的。问题是,此应用程序上的几乎所有代码都不是我的,因此我必须想当然地认为某些东西确实有效。注释不支持代码格式。请使用新代码(使用failsafe)编辑您的问题,并指出哪一行导致错误?
i = CInt(Session("debugEntries"))
If Session("debugEntries")="" Then
    i = 0
Else  
    i = CInt(Session("debugEntries"))
End If
i = i + 1