2014-11-05 123 views
5

當我嘗試使用以下代碼段從數據庫檢索數據時出現此錯誤。用於SQL Server的Microsoft OLE DB提供程序錯誤「80040e14」語法錯誤'='

有人可以幫忙嗎?

set rs = Server.CreateObject("ADODB.recordset") 
sql = " SELECT * from COMPANY WHERE COMPANY_ID = " & Request.Form("CompanyId") 
rs.Open sql, cnn 
+0

嘗試調試並檢查sql返回的變量。你需要做1)檢查你的sql語句是怎麼樣的,並嘗試在SQL環境中運行它。 2)我認爲你的代碼沒有問題。您只需檢查Request.Form(「CompanyId」)是否包含任何值或爲空還是空。 – 2014-11-05 07:15:10

回答

4

首先,這是不使用參數進行臨時查詢的不好的做法。 SQL注入攻擊信息:http://en.wikipedia.org/wiki/SQL_injection

但要回答這個問題,您需要圍繞您要搜索的varchar或char值引用單引號。

set rs = Server.CreateObject("ADODB.recordset") 
sql = " SELECT * from COMPANY WHERE COMPANY_ID = '" & Request.Form("CompanyId") & "'" 
rs.Open sql, cnn 
相關問題