日期:2014-05-18  浏览次数:20708 次

这到底是什么问题啊,奇怪??!!
我的SQL语句

SELECT Station.Sname,Station.Long,Station.Lat,Cnet.F1,Cnet.F2,Cnet.F3,Cnet.F4,Cnet.F5, Cnet.F6,Cnet.F7,Cnet.F8,Cnet.F9,Cnet.F10,Cnet.F11,Cnet.F12,Cnet.F13,Cnet.F14,Cnet.F15,Cnet.Memo
FROM Station INNER JOIN Cnet ON Station.id=Cnet.stationID WHERE Cnet.F7 like '%"+keyci+"%'

放在SQL SERVER的SQL查询器里面去执行是对的,能通过的,也就是说我的SQL语句没问题
但我放到我的JSP页面中去就执行不了,出现这个样的错误

An error occurred at line: 35 in the jsp file: /xq_info1.jsp
Generated servlet error:
String literal is not properly closed by a double-quote


org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


这种数据表的管理查询我用过很多次了,而且都是这样写的,从来就没出现过这样的错误

这是怎么回事呢,还请大家给解答啊,急啊急啊,就等调试好这个完成工作了,都拖了很久了,谢谢大家

------解决方案--------------------
WHERE Cnet.F7 like '% "+keyci+ "% ' 
你这引号都不对称啊,是代码没贴全还是本来就这样,如果就这样的话
String literal is not properly closed by a double-quote 这个错就是说的这个原因
------解决方案--------------------
应该是忘记转义了。你试着把你jsp里的sql打印到控制台,然后再copy到查询器里运行一下看成不成
------解决方案--------------------
是不是你在把sql语句转为String时,忘了加最后的双引号了---like '% "+keyci+ "% ' (最后应加双引号)
要不你在这句后边加一句System.out.println()
把这句sql打出来,copy到SQL查询器里执行一下
------解决方案--------------------
xq_info1.jsp 33行是什么?
可不可把这个jsp的代码贴出来看下嘛,最好把行号带上