ASP语法错误 (操作符丢失) 在查询表达式 'PaperId=' 中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP语法错误 (操作符丢失) 在查询表达式 'PaperId=' 中。相关的知识,希望对你有一定的参考价值。

一个在线考试系统,在 添加考试的时候出错,相关数据表是Test和Papers,提示 Microsoft JET Database Engine 错误 '80040e14' 语法错误 (操作符丢失) 在查询表达式 'PaperId=' 中。 createTestadd.asp,行 59 :

creattest.asp
creattestadd.asp如下:
sql="select * from Test"set rs=server.createobject("adodb.recordset")rs.open sql,conn,3,2rs.addnewrs("PaperName")=request("PaperName")rs("StartTime")=request("StartTime")rs("endTime")=request("endTime")rs("TestName")=request("TestName")rs("PaperId")=request("PaperId")sqls="select * from Papers where PaperId="&request("PaperId")set rss=server.createobject("adodb.recordset")rss.open sqls,conn,3,2rs("Subject")=rss("Subject")rss.closeset rss=nothingrs.updaters.closeset rs=nothingsql="select Top 1 * from Test order by TestId desc"set rs=server.createobject("adodb.recordset")rs.open sql,conn,3,2TestId=rs("TestId")rs.closeset rs=nothing
StuId=split(request("StuId"),", ")cc=ubound(StuID)
for k=0 to ccsql="select * from TestStu"set rs=server.createobject("adodb.recordset")rs.open sql,conn,3,2rs.addnewrs("TestId")=TestIdrs("StuId")=StuId(k)rs("HaveTest")=0rs.updaters.closenextset rs=nothing %>

如果等于PaperId=空 那么估计是你获取的值是空的,也就是说你没获取到这个ID。或者你获取的ID不是整数类型。你往这方面查一下 参考技术A 建议你去天天ASP家园发帖求助

查询表达式中的语法错误(缺少运算符) - ASP.NET

【中文标题】查询表达式中的语法错误(缺少运算符) - ASP.NET【英文标题】:Syntax error (missing operator) in query expression - ASP.NET 【发布时间】:2013-10-09 14:19:22 【问题描述】:

使用以下查询获取语法错误:

strSQL = "SELECT Customer.customer_No, Customer.customer_Name,
                 Appointment.appointment_No,Appointment.appointment_Date, 
                 Appointment.start_Time, Appointment.end_Time 
          FROM Customer 
          INNER JOIN Vehicle 
               ON Customer.customer_No = Vehicle.customer_No   
          INNER JOIN Appointment 
               ON Vehicle.vehicle_Ref_No = Appointment.vehicle_Ref_No"

我在 SQL Server Management Studio 中尝试了相同的查询,它获取了我需要的数据。不知道是什么问题,如有帮助,将不胜感激。

【问题讨论】:

你能把剩下的代码片段贴出来——命令是如何初始化和使用的吗? 请发布错误。这会很有帮助。 【参考方案1】:

试试这个:

strSQL =@"SELECT Customer.customer_No, Customer.customer_Name,
                 Appointment.appointment_No,Appointment.appointment_Date, 
                 Appointment.start_Time, Appointment.end_Time 
          FROM Customer 
          INNER JOIN Vehicle 
               ON Customer.customer_No = Vehicle.customer_No   
          INNER JOIN Appointment 
               ON Vehicle.vehicle_Ref_No = Appointment.vehicle_Ref_No"

@ 将允许您编写多行并使用转义字符。

【讨论】:

以上是关于ASP语法错误 (操作符丢失) 在查询表达式 'PaperId=' 中。的主要内容,如果未能解决你的问题,请参考以下文章

语法错误 (操作符丢失) 在查询表达式

语法错误 (操作符丢失) 在查询表达式

语法错误 (操作符丢失) 在查询表达式

MS Acess不支持多个left join(语法错误(操作符丢失)在查询表达式 xx中)

sql注入,post 注入问题

查询表达式中的语法错误(缺少运算符) - ASP.NET