一个简单问题:关于sql的!!help me!

yunrong 2002-05-21 12:06:11
表单提交的代码如下<%@ page language="java" import="java.sql.*"%>
<%@ page import ="java.util.*"%>
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>user register</title>
</head>
<body>
<%
String userid=request.getParameter("userid");
String password=request.getParameter("password");
String confirm_password=request.getParameter("confirm_password");
String question=request.getParameter("question");
String answer=request.getParameter("answer");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String literacy=request.getParameter("literacy");
String mail=request.getParameter("mail");
String aihao=request.getParameter("aihao");
byte[] tmpbyte=userid.getBytes("ISO8859_1");
userid=new String(tmpbyte);
tmpbyte=password.getBytes("ISO8859_1");
password=new String(tmpbyte);
tmpbyte=confirm_password.getBytes("ISO8859_1");
confirm_password=new String(tmpbyte);
tmpbyte=question.getBytes("ISO8859_1");
question=new String(tmpbyte);
tmpbyte=answer.getBytes("ISO8859_1");
answer=new String(tmpbyte);
tmpbyte=name.getBytes("ISO8859_1");
name=new String(tmpbyte);
tmpbyte=literacy.getBytes("ISO8859_1");
literacy=new String(tmpbyte);
tmpbyte=aihao.getBytes("ISO8859_1");
aihao=new String(tmpbyte);
%>
<%
if((userid.length()==0)||(password.length()==0)||(confirm_password.length()==0))
out.println("登录名,密码,及密码校验不能为空!");
else if ((question.length()==0)||(answer.length()==0))
out.println("密码遗失提示问题及答案不能为空!");
else if (!password.equals(confirm_password))
out.println("密码与确认密码不一致!");
else if( mail.length()==0)
out.println("E-MAIL不能为空!");
else if(mail.indexOf('@')<=0)
out.println("EMAIL 地址有错误!");
else{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:nn";
Connection con=DriverManager.getConnection(url);
PreparedStatement select_stm=con.prepareStatement("select password from nn where userid=?");
select_stm.setString(1,userid);
ResultSet result=select_stm.executeQuery();
String temp_password=null;
if(result.next())
temp_password=result.getString(1);
result.close();
con.close();
if (temp_password!=null)
out.println("这个用户名已存在,请再换一个名字注册!");
else
{ String sqlstr="select *from nn";
Statement stmt=con.createStatement();
sqlstr="insert into nn(userid,password,confirm_password,question,answer,name,sex,mail,literacy,aihao) values('"+userid+"','"+password+"','"+confirm_password+"', '"+question+"','"+answer+"','"+name+"','"+sex+"','"+mail+"','"+literacy+"','"+aihao+"')";
stmt.executeUpdate(sqlstr);
stmt.close();
}

%>
<%@ include file="succeed.jsp" %>
<%
}catch (Exception e){out.println(e);}
}
%>
</body>
</html>
**************************************************************************为什么能查出用户名存在
而以后的向数据库提交时出现错误java.sql.SQLException: General error
就是能运行到这里out.println("这个用户名已存在,请再换一个名字注册!");
else以后就不好用了?
帮忙解决一下!



...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andrawu 2002-05-21
  • 打赏
  • 举报
回复
1、con.close();除掉试试
2、else后面的语句执行了没有?
3、在stmt.executeUpdate(sqlstr);前面加一句:
out.print("sqlstr=="+sqlstr) ;查查输出的内容。
4、}catch(Exception e) {
e.printStackTrace(System.err);
}
在jb中看出错信息和出错行。
windyloft 2002-05-21
  • 打赏
  • 举报
回复
String literacy=request.getParameter("literacy");
String mail=request.getParameter("mail");
String aihao=request.getParameter("aihao");

把这三项的顺序换为

String mail=request.getParameter("mail");
String literacy=request.getParameter("literacy");
String aihao=request.getParameter("aihao");
试试

81,091

社区成员

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

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