2011-08-15 91 views
0

时转换失败我在日志中收到此错误,我真的不知道如何解决它。将nvarchar值'quiz.jpg'转换为数据类型int

“将nvarchar值'quiz.jpg'转换为数据类型int时转换失败。”

我目前正在使用ColdFusion 9.似乎无论出于何种原因,网站试图将图像文件解析到数据库或类似的东西。

任何帮助将不胜感激。

谢谢

+0

这看起来像你想种姓一个字符串(NVARCHAR)为整数。你可能想看看这里:http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Variables_26.html。它适用于CF8,但应该类似 – jschorr

+2

这是否可能是SQL注入攻击的结果?在您的应用程序中是否有任何地方有图片或文字是'quiz.jpg'? –

回答

2

你使用的是<cfqueryparam>

我猜你可能有这样的事情:

<cfquery param value="#myVar#" cfsqltype="cf_sqltype_integer" /> 

的cfsqltype应该cf_sqltype_varchar。

如果情况不是这样,那么请修改您的文章的有误密码。这将是非常有益的。

+0

这是它导致该问题的代码....上面一行我是从我的错误日志文件不是从代码... – Geo

+0

好吧,然后检查你的数据库。问题列(ArticleID?)是否定义为Int?看起来很奇怪,您会将值'quiz.jpg'放入名为'ArticleID' –

+0

的列中,我修正了它。不知怎的,我的一些文章变得奇怪的ID,所以我在页面顶部添加了“if not(isNumeric)”,并且每当发生这种事情时它就会重定向回“/”......感谢您的回复 – Geo

0

我想我们需要更多的错误的细节,如代码行上发生错误或可能整个模板有太大帮助。在缺少更多信息的情况下,杰森的答案似乎是可能的。

0

这对我来说听起来像你可能有一个查询,你试图连接一个nvarchar列与int列。

SELECT MyString + MyInt FROM MyTable 

不幸的是SQL Server不能隐式转换整数为varchar进行连结,所以你需要将你的整数转换。

SELECT MyString + Convert(varchar(20), MyInt) FROM MyTable 

SELECT MyString + Cast(MyInt AS varchar(20)) FROM MyTable 
相关问题