2013-01-09 38 views
1

我试图使用一个变量的列字段中的SQL语句但它后面拍摄下面的错误我:错误执行SQL表达式ASP

Microsoft OLE DB提供程序的ODBC驱动程序错误“80040E14”

[Microsoft] [ODBC Text Driver]查询表达式'='是''中的语法错误(缺少运算符)。

/junk/dbresults.htm,线31

的代码:

<% 
    Dim connectString, connect, conDB, con 
    connectString = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DBQ=" & Server.MapPath("data") 
      src_abn = Request.QueryString("abn") 
      src_cat = Request.QueryString("cat") 
    set connect = Server.CreateObject("ADODB.connection") 
    connect.open connectString 

    if src_abn = "all" then 
    conDB = "SELECT * FROM cont.csv WHERE " & src_cat & " = 'Yes'" 
    else 
    conDB = "SELECT * FROM cont.csv WHERE ucase(abn) LIKE ucase('%"+src_abn+"%')" 
    end if 

    set con = connect.execute(conDB) 
%> 
+1

'src_cat'碰巧是空字符串吗? – Oded

回答

0

修正了它,变量没有被删除。

1

貌似的src_cat值包含创建一个无效的查询空格或其他字符。尝试改变这一行(括号括起来):

conDB = "SELECT * FROM cont.csv WHERE [" & src_cat & "] = 'Yes'" 
+0

值得在此警告OP注入攻击。 –