Asp classic JScript Number()函数只返回“0”;[对象]不是一个数字“;

Asp classic JScript Number()函数只返回“0”;[对象]不是一个数字“;,asp-classic,ado,iis-8,jscript,Asp Classic,Ado,Iis 8,Jscript,我在经典的ASP,IIS8.0中使用JScript,从MySQL 5.5数据库生成的ADO记录集中检索一个数值作为数字。记录集很好,返回的值直观、准确,但是,将对象强制转换为数字以在IIS日志中使用会产生以下错误: “[对象]不是数字” 代码: 在尝试跟踪问题时,我看到了正确的结果: Response.Write(typeof rs("kount")); // RETURNS "object" Response.Write(rs("kount&q

我在经典的ASP,IIS8.0中使用JScript,从MySQL 5.5数据库生成的ADO记录集中检索一个数值作为数字。记录集很好,返回的值直观、准确,但是,将对象强制转换为数字以在IIS日志中使用会产生以下错误:

“[对象]不是数字”

代码:

在尝试跟踪问题时,我看到了正确的结果:

Response.Write(typeof rs("kount")); // RETURNS "object"
Response.Write(rs("kount"));        // RETURNS 1

如果Number()失败,则使用parseInt(rs(“kount”),10;也失败了(我试过了,也产生了“[对象]不是一个数字”,所有其他记录集变体(rs.Fields(1),rs.Fields.Item(1))都以完全相同的方式失败,那么我如何将对象rs(“kount”)转换成数字1,或者它应该是什么数字?

@Lankymart用这个来赚钱

结果表明,当您执行我最初的查询以返回值和总数时,使用
count(*)作为kount
失败,因为count(*)返回的是一个长的而不是整数,因此,Number()和String()函数都会阻塞它

当我改为将(count(*)转换为CHAR(32))时,它成功了;它将int(11)转换为CHAR(32),CHAR(32)由Number()[和String()]识别并可以转换为数字,因此,问题完全解决了


谢谢大家!

Number()构造函数本身不会产生这种错误。好吧,它是一个对象,在某些情况下,它会给你它拥有的默认属性(value)。但是你仍然要把一个对象传递给Number,试试rs.Fields(“kount”)。value
Number({foo:“bar”})
返回
NaN
。我得到了rs.Fields(“kount”)上的“对象不支持此属性或方法”。可能与值相关?很高兴这对您有用。
Response.Write(typeof rs("kount")); // RETURNS "object"
Response.Write(rs("kount"));        // RETURNS 1