站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

摘要: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。


add_message.jsp

<%@page import="java.sql.*"%>
<%@page language="java" contentType="text/html;charset=gb2312" %>

<head>
add message into table
</head>
<body>
<%
String name=request.getParameter("name");
String mail=request.getParameter("mail");
String title=request.getParameter("title");
String content=request.getParameter("content");
if(name==null)
name="";
if(mail==null)
mail="";
if(title==null)
title="";
if(content==null)
content="";
if(name.length()==0)
out.println("&#938;&#1379;");
else if(title.length()==0)
out.println("&#11451;&#938;&#1379;");
else if(content.length()==0)
out.println("&#1906;&#938;&#1379;");
else
{
java.util.Date date=new java.util.Date();
String datetime=new Timestamp(date.getTime()).toString();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:test";
Connection con=DriverManager.getConnection(url);
PreparedStatement stm=con.prepareStatement("insert into message values(?,?,?,?,?)");
stm.setString(1,title);
stm.setString(2,name);
if(mail.length()==0)
stm.setString(3,null);
else stm.setString(3,mail);
stm.setString(4,datetime);
stm.setString(5,content);
try
{
stm.executeQuery();
}catch(Exception e)
{}
con.close();
}
catch(Exception e)
{}
%>

<%
}
%>
</body>


view_message.jsp

<%@page language="java" contentType="text/html;charset=gb2312" %>
<%@page import="java.sql.*"%>

<head>
show the message in the table
</head>
<body>

з&yuml;




<%
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:test";
Connection con=DriverManager.getConnection(url);
Statement stm=con.createStatement();
ResultSet result=stm.executeQuery("select count(*) from message");
int message_count=0;
if(result.next())
{
message_count=result.getInt(1);
result.close();
}
if(message_count>0)
{
result=stm.executeQuery("select * from message order by time desc");
while(result.next())
{
String name=result.getString("name");
String mail=result.getString("mail");
String title=result.getString("title");
String content=result.getString("content");
Timestamp time=result.getTimestamp("time");
Date date_time=new Date(time.getTime());
Time time_time=new Time(time.getTime());
%>
<table width="100%" align="center" border=1 cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolerlight="#88a6dd">
<tr><td bgcolor="#88a6dd">&#10490;</td>
<td colspan=3><%=title%></td></tr>
<tr><td bgcolor="#88a6dd"></td>
<td><%=name%></td></tr>
<tr><td bgcolor="#88a6dd">E-mail:</td>
<td>
<%
out.println(""+mail+"");
%>
</td></tr>
<tr><td bgcolor="#88a6dd">&#689;&#18682;</td><td colspan=3>
<%
out.println(""+date_time+""+time_time+"");
%>
</td></tr>
<tr><td align="center"></td><td colspan=3>
<%
out.println("("+message_count+")");
%>
</td></tr>
<tr><td align="center">&#1891;</td>
<td colspan=3><%=content%>
</td></tr>
</table>
<%
out.println("
");
message_count=message_count-1;
}
result.close();
con.close();
}
else
{
out.println("&#319;&#496;&ucirc;κ&#1315;");
con.close();
}
}catch(Exception e)
{out.println(e);}
%>

&#1194;


</body>



java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。


上面这个留言板我在tomcat上面发布之后,没有问题,但是在我查看留言或提交留言的时候会出现
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。

请教各位大哥,小弟的问题出在哪里了?谢谢


message_count=result.getInt(1);
改为
message_count=result.getInt(0);


肯定是这样的
快给我分数吧
我马上就升级了


只差3分
回答了一个下午
每人结贴


Connection con=DriverManager.getConnection(url); 缺少
数据库用户名 和密码


VALUES域中的值列表不足,比表的字段少,检查一下


谢谢楼上各位大哥的热心相助,我按照各位的建议一一试了试,可结果还是不很理想,
将message_count=result.getInt(1);改为 message_count=result.getInt(0);
运行的结果为:
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的描述器索引
将Connection con=DriverManager.getConnection(url);加上用户名和密码后该为
Connection con=DriverManager.getConnection(url,"","");运行的结果和以前一样显示
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
至于表的设置,我设置表名为message,第1-5个字段依次设置的是title,name,mail,datatime,content,数据类型全部都设置为文本,其他的参数均为默认值.请问在本例的前提下,这样设置对吗???


是不是ODBC驱动有问题哦


可否请楼上的高手对ODBC驱动方面指点一下,我不止在一台机器上运行过这个程序,但他们都出现了同样的错误,难道是巧合?同时我也在同一台机器上对别的带access数据库的jsp程序运行过,情况很正常啊,ODBC驱动是每台机器自带的对吗?可能会出现什么样的问题呢?我觉得是别的问题的可能性大一些.在此对您的热心指点致以诚挚的谢意!


add_message.jsp中由于datetime无法执行插入,而导致错误,可由createStatement重写成功

view_message.jsp中的time改为datetime即可运行成功!


↑返回目录
前一篇: 关于Application对象的一个奇怪问题
后一篇: 利用PreparedStatement向数据库中插入记录时,各字段的设置???