问题描述
importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.*;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassProcessextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=GB2312");PrintWriterout=response.getWriter();Stringid=request.getParameter("id");Stringpassword=request.getParameter("password");Stringname=request.getParameter("name");Stringtel=request.getParameter("tel");Stringemail=request.getParameter("email");Stringstr=newString("");Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=information";Connectionconn=null;Statementstat=null;ResultSetrs=null;intx=0;try{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();conn=DriverManager.getConnection(url,"root","123456");stat=conn.createStatement();rs=stat.executeQuery("select*frominformation");x=0;while(rs.next()){str=rs.getString("id");if(x!=1&&(str.equals(id))){out.println("<htmlxmlns='http://www.w3.org/1999/xhtml'>");out.println("<head>");out.println("<metahttp-equiv='Content-Type'content='text/html;charset='utf-8'/>");out.println("<title>无标题文档</title>");out.println("</head>");out.println("<body>");out.println("用户名存在,请重新填写");out.println("<formaction='index.html'><inputtype=submitvalue='返回'></form>");out.println("</body>");out.println("</html>");x=1;out.println("heihei");}}if(x==0){stat.executeUpdate("insertintoinformationvalues('"+id+"','"+password+"','"+name+"','"+tel+"','"+email+"')");}}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}catch(Exceptione){e.printStackTrace();}finally{try{stat.close();conn.close();}catch(Exceptione){e.printStackTrace();}}out.println("welcometohere");}}
连接mysql当id重复是能显示返回界面但是当连接的是sqlserver的时候就不显了就算id重复也插入数据库为什么当时sqlserver的时候str.equals(id)不起作用高手指点一下
解决方案
解决方案二:
errorinfo?
解决方案三:
if(!rs.next())
这样试试!楼主的这个方法不好!if(!rs1.next()){Stringsql="insertintot_uservalues(xxxxxxx)";intrs=db.executeUpdate(con,sql);//response.sendRedirect("index.html");out.println("<script>alert('注册成功!');</script><script>location.href='login_s.jsp'</script>");System.out.println(rs);}out.println("<script>alert('用户名已经存在……请重新注册!');</script><script>location.href='rege.jsp'</script>");}
解决方案四:
把错误信息发上来吧
解决方案五:
id最好不要让它重复
解决方案六:
发下错误信息/不看错误信息哪个都好难看出你哪出错/..
解决方案七:
把错误信息发上来看下!
解决方案八:
路过~~~~~~~~
解决方案九:
发下错误信息/不看错误信息哪个都好难看出你哪出错/..
解决方案十:
这个运行时候没有错误就是不出来结果同样的代码把驱动之类的改一改连mysql又能达到效果连sqlserver就不行能够插入当输入重复的他则又插入了(想让他弹出个返回按钮,告诉用户重复了)
解决方案十一:
在有mysql向sqlserver加载驱动的时间好好的改下!
解决方案十二:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();这个应该这样写吧!Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")还有你的驱动是Sqlserver2000的吧
解决方案十三:
if(x!=1&&(str.equals(id)))把条件改下改成if(x!=1||str.equals(id))