JScript Number() 函数只返回 "[object] is not a number"



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

"[对象]不是数字";

代码:

var total = Number(rs("kount"));

当试图追踪问题时,我看到了正确的结果:

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(*) as kount失败了,因为count(*(返回的是LONG,而不是整数,因此,Number((和String((函数都会阻塞它。

当我这样做而不是CAST(count(*) as CHAR(32))时,它就起作用了;它将int(11(强制转换为char(32(,Number(([和String((]可以识别并将其转换为Number,因此,问题完全解决了。

谢谢大家!

相关内容

最新更新