2016-08-02 25 views
0

こんにちは、私はSQL ServerエラーのためMicrosoft OLE DBプロバイダSQL Serverエラー '80040e14'無効な列名です。 SQLクエリ

のMicrosoft OLE DBプロバイダ '80040E14'

無効な列名 'ゴンザレス' は、このエラーメッセージを持っています。

このクエリを実行しようとすると、私は今作成しました。このウェブサイトには、企業ディレクトリのすべての姓を検索するために入力する検索ボックスがあります。

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

これはただ今後の参考のため

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 Injectionのため安全ではありません。 – FLICKER

答えて

0

[OK]をみんなが私は単一引用符を削除found.I何掲示するSSMSで正常に動作します。しかし、出力フィールドの名前を新しいデータベースの列名に変更する必要がありました(DUH)!私はデバッガに依頼して、エラーがどの行にあったのか、それは間違っていると私に伝え続けました。すべての助けをありがとう。

SecurityQuery = "SELECT * FROM dbCorpDir.dbo.vwEmployees WHERE sn like " & FormatDBTextSearch(Last_Name) & " ORDER BY sn;" 
関連する問題