代码如下:目的是注册。想要两次输入的密码一致后,到数据库中的TBL_STU表中查找是否重名,如果不重名,插入表中。
if(pwd.equals(repwd))
{
    
   ResultSet rs1=sql.executeQuery("select * from TBL_STU where xh='"+xh+"'");
   
   //out.print(sql1);
       if(rs1.next())
   {
   rs1.close();
out.print("<script>alert('该用户名已经被注册,请选择其它的用户名!');</script>");
}
   else{   
        
            try
                {
sql.executeUpdate("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");
                }
            catch(SQLException e1) 
                   {
                    out.print(e1.getMessage());
                   }
                }}

解决方案 »

  1.   

    这种情况应该使用 PreparedStatement具体请google一下
      

  2.   

    sql代码应该是这样吧
    ("select * from TBL_STU where xh="+xh)
      

  3.   

    现在我把代码改成了这样:
    if(pwd.equals(repwd))
     {
        
       ResultSet rs1=sql.executeQuery("select * from TBL_STU where xh='"+xh+"'");
       
       //out.print(sql1);
           if(rs1.next())
       {
       rs1.close();
    out.print("<script>alert('该用户名已经被注册,请选择其它的用户名!');</script>");
    }
    else{  
            
                try
                    {
    sql.executeUpdate("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");
                    }
                catch(SQLException e1) 
                       {
                        out.print(e1.getMessage());
                       }
                }
    }else
    {out.print("<script>alert('请确认两次输入的密码相同!');</script>");}不报任何错误,所要完成的功能却不能实现,也根本插不到数据库中。
      

  4.   

    楼上的是猪.人家验证的是密码,varchar类型的.(           " select * from TBL_STU where xh=' "  +xh+             " ' "          )
    你看哪里有错.""是引'的.你去掉变成什么了.int类型?????
      

  5.   

    骂人呀,嘿嘿.....
    楼主用什么数据库呢?
    先试一下得到 的xh值,然后把它拿数据库里试试吧
    把sql打印出来看看
      

  6.   

    jhaij() 同志:
    你在骂谁啊?我都听不懂你说什么。AWUSOFT(程序设计,一个字:爽!) 同志:
    我用的是sql server 2000。如果这段代码无法修改,大家有没有别的可以用的,贴出来让我学习一下,或者发给我,好吧?
    只要是注册页面用的就可以,很多管理系统都有这个,但是搜索的话都是整套系统。
    先谢谢了!!!
      

  7.   

    为什么无法修改?现在还是 不行吗?
    首先你测试一下得到的那个xh值啊,然后把select * from TBL_STU where xh='"+xh+"'
    拿查询分析器去试试看啊,看看会不会有结果
      

  8.   

    sql.executeUpdate("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");
    你用其他方式单调用这句话.看看能不能插.有可能字段验证不通过
      

  9.   

    如果不通过 那么
     }
                catch(SQLException e1) 
                       {
                        out.print(e1.getMessage());
                       }
                }这里应该会打印东西吧?
    楼主用e.printStack...()试试吧
      

  10.   

    if(pwd.equals(repwd))
    {
        
       ResultSet rs1=sql.executeQuery("select * from TBL_STU where xh='"+xh+"'");
       
       //out.print(sql1);
    System.out.println("select * from TBL_STU where xh='"+xh+"'");/////////加这一句进去看看
           if(rs1.next())
       {
       rs1.close();
    out.print("<script>alert('该用户名已经被注册,请选择其它的用户名!');</script>");
    }
       else{   
            
                try
                    {
    System.out.println("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");/////////加这一句进去看看
    sql.executeUpdate("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");                
                    }
                catch(SQLException e1) 
                       {
                        out.print(e1.getMessage());
                       }
                    }}
    看看有什么结果吧,先看这些语句的值是不是对的
      

  11.   

    看看后台打印什么结果啊,
    System.out.println("select * from TBL_STU where xh='"+xh+"'");/////////加这一句进去看看
    System.out.println("insert into TBL_STU(xh,xm,bh,pwd,sex,nl,zy,sfzh,txdz,yb,dh,email) values('"+xh+"','"+xm+"','"+bh+"','"+pwd+"','"+sex+"','"+nl+"','"+zy+"','"+sfzh+"','"+txdz+"','"+yb+"','"+dh+"','"+email+"')");/////////加这一句进去看看
    如果后台没有打印东西证明都没有进到里边去
    你也可以改成out.println()就不要用System.out.println()了
      

  12.   

    if(pwd.equals(repwd))
    是不是这一句都没有能过呢?
      

  13.   

    我晕.....
    那你就测试 一下pwd和repwd的值 啊, 看看它们是不是相同 的
      

  14.   

    呵呵,我再试着说的明白一点儿。我所要完成的注册分两个页面完成:
           第一个页面是填写各项(包括会员名xh,密码pwd,确认密码repwd,等等一些),并检查会员名,密码,确认密码是否为空。
           第二个页面是现在待解决的页面,需要检查两次密码是否相同,会员名是否被注册过,通过检查后插入到数据库中。我是在Dreamweaver写代码和页面设计,然后放到Tomcat的相应文件夹里,我不太明白你说的测试是要怎么样做?我比较笨,还希望大家多多帮助我。
      

  15.   

    在第二个页面里out.println(pwd.equals(repwd))看看是true还是false;
      

  16.   

    第一个页面是填写各项(包括会员名xh,密码pwd,确认密码repwd,等等一些),并检查会员名,密码,确认密码是否为空。
    --------
    这个前台用JS就可以完成了。你设断点跟踪下看看,是到哪里的问题,还有在各个步骤执行的过程中,把SQL语句打印出来看一下,你也不说报的是什么错误,那些SQL语句在查询分析器里面插入看看能执行不,就按AWUSOFT(程序设计,一个字:爽!) 说的那个方法,System.out.println一下,看看控制台输出的是什么。
      

  17.   

    前辈们说的测试是在什么环境里测的呀,控制台什么的。
    我这里都没有可以跟踪的环境,我是直接放在Tomcat相应的文件下执行的,不是我不说报的错误,是它根本不报错,就按照一个页面接一个页面走,什么都不做。唉,笨死了,我
      

  18.   

    tomcat->logs输出的东西都在里边呢,看看是在哪个文件里
      

  19.   

    调试  在调试
    插不进去很可能是 SQL语句的问题     只有在调试过程中才能看清 真正传给数据库的的插入语句是什么