开始有5个字段
后来删除了
数据库表里面的字段是
userid    pwd   sex   id  QQ   email  dqtime
sex是用数字表示的0是女1是男
id是自动的增量
当注册一个后它自动加一
不知道代码哪里错了
运行的时候没问题
但是就不能写入数据库
<%@ page language="java"  import="java.sql.*,java.util.Date;" contentType="text/html;  charset=gbk" pageEncoding="gbk"%>
<%!
Connection conn = null ;
PreparedStatement pstmt = null ;
%><%
request.setCharacterEncoding("gb2312");Date date=new Date();
boolean flag = false ;
String username=request.getParameter("username");
String password=request.getParameter("password");
int sex=Integer.parseInt(request.getParameter("sex"));
String QQ = request.getParameter("QQ") ;
String email = request.getParameter("emai") ;
%>
<%String sql = "INSERT INTO student (userid,pwd,sex) VALUES (?,?,?)" ;
try

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");     
Connection   conn =DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;User=ljm;Password=19891118;DatabaseName=mydate");   
pstmt = conn.prepareStatement(sql) ;

pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,username);
pstmt.setString(2,password) ;
pstmt.setInt(3,sex);
/*pstmt.setString(4,QQ);
pstmt.setString(5,email);
*/
pstmt.executeUpdate() ;
pstmt.close() ;
conn.close() ;
flag = true ;}
catch(Exception e)
{}
%>

解决方案 »

  1.   

    pstmt.executeUpdate() ;
    pstmt.close() ;
    conn.close() ;
    flag = true ;
    红色的字体没执行
    红色以上的都执行的
    为什么啊
      

  2.   

    pstmt = conn.prepareStatement(sql) ;
        
    pstmt = conn.prepareStatement(sql) ;
    这两句代码重复
      

  3.   

    <%!    
    Connection conn = null ;
    PreparedStatement pstmt = null ;
    %>
    你在这里已经定义了Connection对象
    那么这里你再看看,你又定义了一个Connection,会出错
    Connection   conn =DriverManager.getConnection
    改了试下
      

  4.   

    局部变量把全局的覆盖了
    没什么影响
    我把后面的connection删除了
    还是一样的  
    没有提示
    我用弹出对话框试过了
    只执行到了上面红色代码那里
    红色代码没执行