用于SQL Server的Microsoft OLE DB提供程序错误“80040e14”列名称无效。 SQL查询

问题描述:

您好我已经有此错误消息用于SQL Server的Microsoft OLE DB提供程序错误“80040e14”列名称无效。 SQL查询

Microsoft OLE DB提供了SQL Server错误 '80040E14'

无效的列名'冈萨雷斯。

当我尝试运行此查询时,我刚刚提出。这个网站有一个我输入的搜索框,它搜索公司目录中的所有姓氏。

SecurityQuery = "SELECT * FROM dbCorpDir.dbo.vwEmployees WHERE sn like '" & FormatDBTextSearch(Last_Name) & "' ORDER BY sn;" 

这部作品在SSMS精细

SELECT * FROM dbCorpDir.dbo.vwEmployees WHERE sn like 'gonzalez' ORDER BY sn; 
+0

[SQL注入警报](http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - 你应该**不**连接在一起您的SQL语句 - 使用**参数化查询**来代替以避免SQL注入 –

+0

您可以在搜索字符串中使用单引号吗?在任何情况下,在*替换之后打印'SecurityQuery' *的值会使问题在大约95%的情况下显而易见。 –

+0

如果您查看SecurityQuery变量以查看其中的内容,您会发现错误。查询很简单,看起来正确,除非在Last_Name中有一些可能导致问题的特殊字符。顺便说一句,这个查询是不安全的,因为SQL注入。 – FLICKER

玉家伙只是以供将来参考,我会寄我found.I去掉单引号。但我需要将输出字段重命名为新数据库的列名称(DUH)!我一直依靠调试器告诉我错误发生了什么,这是错误的。再次感谢所有的帮助。

SecurityQuery = "SELECT * FROM dbCorpDir.dbo.vwEmployees WHERE sn like " & FormatDBTextSearch(Last_Name) & " ORDER BY sn;"