我在sql server里建了一个表,用于注册,主键是用户名,往表里添加用户时,用户名相同,会添加错误,这是正确的,但是用户名不同,密码相同,他也显示[Microsoft][ODBC SQL Server Driver][SQL Server]违反了 PRIMARY KEY 约束 'PK_teacher_1'。不能在对象 'teacher' 中插入重复键。 而且是有时出错,有时成功,不知道为啥???

解决方案 »

  1.   

    <html>
    <head>
    <title>登陆验证</title>
    </head>
    <%@page import="java.util.*, java.sql.*" contentType="text/html;charset=GB2312" %>
    <body bgcolor="#0099FF">
    <%
      
      String userid=new String(request.getParameter("userid").getBytes("ISO8859_1"),"GBK");
      String sex=new String(request.getParameter("sex").getBytes("ISO8859_1"),"GBK");
      String password=new String(request.getParameter("password").getBytes("ISO8859_1"),"GBK");
      String Email=new String(request.getParameter("Email").getBytes("ISO8859_1"),"GBK");
      String address=new String(request.getParameter("address").getBytes("ISO8859_1"),"GBK");
      try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection con=DriverManager.getConnection("jdbc:odbc:spawn", "sa" , "");
      Statement stmt=con.createStatement();
     
      String sql="insert into teacher  values ('"+userid+"','"+sex+"','"+password+"','"+Email+"','"+address+"')";
    stmt.executeUpdate(sql);
      out.println("添加成功!<a href=teacherlogin.jsp>请返回</a>");
    }catch(Exception e){
     out.println("添加失败!<a href=register.jsp>请返回</a>");
     out.println(e.getMessage());
      }
    %></body>
    </html>
      

  2.   

    程序没问题,你在sqlserver企业管理器或查询分析起直接插入数据看看。