executeQueryERR:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: ')' 附近有语法错误。
java.lang.NullPointerException
at org.apache.jsp.search_005fdo_jsp._jspService(org.apache.jsp.search_005fdo_jsp:303)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
java.lang.NullPointerException
at org.apache.jsp.search_005fdo_jsp._jspService(org.apache.jsp.search_005fdo_jsp:303)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
<%String sql="select AIRPORT_IATA from SAirport where CITY_IATA=(select CITY_IATA from SCity where NAME_CHINESE like'%"+city1+"%'))";
ResultSet res = dbt.executeQuery(sql);
String airport1=res.getString("AIRPORT_IATA");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STD"+i)==null?"暂无数据 ":rs.getString("STA"+i));out.println(temp);%></font></td>
<% }
sql="select AIRPORT_IATA from SAirport where CITY_IATA=(select CITY_IATA from SCity where NAME_CHINESE like'%"+city2+"%'))";
res = dbt.executeQuery(sql);
airport1=res.getString("AIRPORT_IATA");
out.print("airport1");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STA"+i)==null?"暂无数据 ":rs.getString("STD"+i));out.println(temp);%></font></td>
<%}%>
怎么看都多了个括号
还有其他错误!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateCursorPosition(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
at org.apache.jsp.search_005fdo_jsp._jspService(org.apache.jsp.search_005fdo_jsp:302)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: ')' 附近有语法错误
这已经提示的很清楚了啊
改成CITY_IATA in (......)
if (!res.next()){
String airport1=res.getString("AIRPORT_IATA");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STD"+i)==null?"暂无数据 ":rs.getString("STA"+i));out.println(temp);%></font></td>
<% }
sql="select AIRPORT_IATA from SAirport where CITY_IATA=(select CITY_IATA from SCity where NAME_CHINESE like'%"+city2+"%'))";
res = dbt.executeQuery(sql);
airport1=res.getString("AIRPORT_IATA");
out.print("airport1");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STA"+i)==null?"暂无数据 ":rs.getString("STD"+i));out.println(temp);%></font></td>
<%}%>
<%}%>
<%String sql="select AIRPORT_IATA from SAirport where CITY_IATA in(select CITY_IATA from SCity where NAME_CHINESE ='"+city1+"')";
ResultSet res = dbt.executeQuery(sql);
String airport1;
while(res.next())
{ airport1=res.getString("AIRPORT_IATA");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STD"+i)==null?"暂无数据 ":rs.getString("STA"+i));out.println(temp);%></font></td>
<% }}
sql="select AIRPORT_IATA from SAirport where CITY_IATA in(select CITY_IATA from SCity where NAME_CHINESE ='"+city2+"')";
res = dbt.executeQuery(sql);
while(res.next())
{ airport1=res.getString("AIRPORT_IATA");
for(int i=1;i<8;i++)
{ String airport2=rs.getString("AIRPORT"+i);
if(airport1.equals(airport2))
%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STA"+i)==null?"暂无数据 ":rs.getString("STD"+i));out.println(temp);%></font></td>
<%}}%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("AIRPORT1")==null?"暂无数据 ":rs.getString("AIRPORT1"));out.println(temp);%></font></td>
</tr>
你的SQL语句中只有AIRPORT_IATA ,AIRPORT1到AIRPORT8从哪里来的。
2、 if(airport1.equals(airport2))后的语句应该用{}括起来if(airport1.equals(airport2))
{%>
<td bgcolor="<%=color%>"><font color="#FFFFFF"><%temp=(rs.getString("STD"+i)==null?"暂无数据 ":rs.getString("STA"+i));out.println(temp);%></font></td>
<%}%>
rs.getString("AIRPORT"+i);是执行上面的啊!这个是rs.而不是res.