2016-08-02 65 views
0

您好我已經有此錯誤消息用於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

回答

0

玉傢伙只是以供將來參考,我會寄我found.I去掉單引號。但我需要將輸出字段重命名爲新數據庫的列名稱(DUH)!我一直依靠調試器告訴我錯誤發生了什麼,這是錯誤的。再次感謝所有的幫助。

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