我写了一个注册帐户和密码的jsp,通过表单往数据库里写数据。帐户和密码能写进去了,当输入错误时判断也正常,可是一旦输入正确,写进数据库后就会报错。错误提示如下:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.sql.SQLException: No ResultSet was producedroot cause java.sql.SQLException: No ResultSet was producednote The full stack traces of the exception and its root causes are available in the Sun Java System Application Server Platform Edition 9.0_01 logs.我的程序如下:
<%
if(request.getParameter("registerid")!=null &&request.getParameter("registerpwd1")!=null && request.getParameter("registerpwd2")!=null)
{ if(!request.getParameter("registerpwd1").equals(request.getParameter("registerpwd2")))
out.println("两次秘密输入不一致!");
else
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:webData");
Statement smt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String id =request.getParameter("registerid");
String pwd=request.getParameter("registerpwd1");
String sql="SELECT * FROM memberData WHERE ID='"+id+"'";
ResultSet registerpp = smt.executeQuery(sql);
if(registerpp.next())
out.println("输入的账号已经存在,请重新输入!");
else{
sql="INSERT INTO MemberData (ID,Password) values ('"+id+"','"+pwd+"')";
smt.executeQuery(sql);
con.close();
session.setAttribute("registered","y");
response.sendRedirect("login.jsp");
}
}
}
else out.println("账号和密码不能为空!");
%>我是新手哈,还请大家帮帮忙!!!
<%
if(request.getParameter("registerid")!=null &&request.getParameter("registerpwd1")!=null && request.getParameter("registerpwd2")!=null)
{ if(!request.getParameter("registerpwd1").equals(request.getParameter("registerpwd2")))
out.println("两次秘密输入不一致!");
else
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:webData");
Statement smt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String id =request.getParameter("registerid");
String pwd=request.getParameter("registerpwd1");
String sql="SELECT * FROM memberData WHERE ID='"+id+"'";
ResultSet registerpp = smt.executeQuery(sql);
if(registerpp.next())
out.println("输入的账号已经存在,请重新输入!");
else{
sql="INSERT INTO MemberData (ID,Password) values ('"+id+"','"+pwd+"')";
smt.executeQuery(sql);
con.close();
session.setAttribute("registered","y");
response.sendRedirect("login.jsp");
}
}
}
else out.println("账号和密码不能为空!");
%>我是新手哈,还请大家帮帮忙!!!
sql="INSERT INTO MemberData (ID,Password) values ('"+id+"','"+pwd+"')";
smt.executeQuery(sql); con.close();
insert into 语句不能用 smt.executeQuery这个方法 ,而应该用smt.executeUpdate方法