折磨了我三天的ACCESS数据库调用问题,

alicezhong2003 2003-08-20 04:56:04
一下是我的代码
<%@ page contentType="text/html; charset=Gb2312" import="java.sql.*"%>
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;

public void jspInit()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:ClassDB");
stmt=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}

public void jspDestroy()
{
try{
rs.close();
stmt.close();
con.close();
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
<html>

<head>
<title>讨论区</title>
</head>

<body>
<a href="postform.jsp?RepID=0" target="PostContent">张贴新文章</a><br>
<%
String strSQL="SELECT*FROM Board"+"WHERE RepID=0 ORDER BY LastRep DESC";
rs=stmt.executeQuery(strSQL);
if(!rs.next())
{
%>
<font size=5 color="red">目前无人张贴文章</font>
<%
}
else
{
%>
<table bgcolor="dodgerblue">
<tr bgcolor="SkyBlue">
<TD>标题</TD><td>日期</td><td>粘贴者</td>
<td>回复篇树</td><td>人气指数</td><td>最近回复时间</td>
</tr>
<%
do
{%>
<tr>
<td bgcolor="LightYellow">
<a href='Content.jsp?ID=<%=rs.getString("ID")%>&ReLoad=yes' target="PostContent">
<%=rs.getString("Title")%></a></td>
<td bgcolor=LightYellow><%=rs.getString("PostTime")%></td>
<td bgcolor=LightYellow><%=rs.getString("Poster")%></td>
<td bgcolor=LightYellow><%=rs.getString("RepNum")%></td>
<td bgcolor=LightYellow><%=rs.getString("ConNum")%></td>
<td bgcolor=LightYellow><%=rs.getString("LastRep")%></td>
<TR>
<%
}while(rs.next());
}
%>
</table>
</body>
</html>

其中我做了一个叫"Class.mdb"的access的数据库,其中包含一个表叫"Board",然后我再"数据源"中选择"系统DNS"-"添加"-Microsoft access Driver-数据源名"ClassDB"-数据库路径"D:\test\讨论区\Class.mdb"-确定

然后运行这个jsp,报错:
org.apache.jasper.JasperException: [Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)



...全文
186 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alicezhong2003 2003-08-20
  • 打赏
  • 举报
回复
哇太棒了!!!我看了我的数据库,有这两个表,但是我的这两个字段的名字不是整型的是长整型的,后来我改成了"整型"的了,然后就好了,真实太感激了5555~~~

最后请问为什么偏要整型的那,是不是我的数据库基础太差了,才不知道
monbit 2003-08-20
  • 打赏
  • 举报
回复
还有LastRep这个字段那?都有么,这次是字段名不对啦,哈
monbit 2003-08-20
  • 打赏
  • 举报
回复
RepID这个字段有没有亚?是整型的么?
alicezhong2003 2003-08-20
  • 打赏
  • 举报
回复
我试了,刚改了,可是系统还是报错:
org.apache.jasper.JasperException: Column not found
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)

真是令人感动阿,给了您10分
monbit 2003-08-20
  • 打赏
  • 举报
回复
String strSQL="SELECT*FROM Board"+"WHERE RepID=0 ORDER BY LastRep DESC";
改成String strSQL="SELECT * FROM Board "+" WHERE RepID=0 ORDER BY LastRep DESC";
注意你原来的Board和WHERE连在一起了,变成了BoardWHERE了,数据库还以为BoardWHERE是一个表名那,然后就找不到where关键字了,当然就报错了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧