reg.jsp代码如下:
<HTML>
<HEAD>
<TITLE>用户注册</TITLE>
</HEAD><BODY>
<%@page language="java"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="data" scope="page" class="sql.login"/>
<jsp:useBean id="str" scope="page" class="test.str_filter"/>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
name=name.trim();
password=password.trim();
String sql;
sql="select * from user_table order by id desc";
ResultSet rs=data.executeQuery(sql);
int id=rs.getInt(1);
String id_temp=Integer.toString(id);
if(id_temp==null){
  id=1;
}else{
  id++;
 }
 sql="insert into user_table values("+id+",'"+name+"','"+password+"')";
 if(data.executeUpdate(sql)){
   out.print(str.strtochn("您已经是合法用户。"));
}
data.close();
%>
</BODY>
</HTML>

解决方案 »

  1.   

    连接数据库了吗?什么时候在哪里连接的?是在那两个JavaBean中吗?
      

  2.   

    login.java代码如下所示:package sql;
    import java.sql.*;
    public class login{
    public String UserID="sa";
    public String PassWord="";int TYPE_SCROLL_SENSITIVE = 1005;
    int CONCUR_UPDATABLE = 1008; String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
      String sURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login";
        Connection conn=null;
    ResultSet rs=null;
    Statement stmt; public login(){
    try{
    Class.forName(sDBDriver);
    conn=DriverManager.getConnection(sURL,UserID,PassWord);
    stmt=conn.createStatement(rs.TYPE_SCROLL_SENSITIVE,rs.CONCUR_UPDATABLE);
    }
    catch(java.lang.ClassNotFoundException e){
    System.err.println("create():"+e.getMessage());
    }
    catch(SQLException e){
    }
    }
    public boolean executeUpdate(String sql){
    try{
    stmt.executeUpdate(sql);
    return true;
    }catch(SQLException e){
    System.err.println("aq.executeUpdate:"+e.getMessage());
    }
    return false;
    }
    public ResultSet executeQuery(String sql){
    rs=null;
    try{
    rs=stmt.executeQuery(sql);
    }
    catch(SQLException ex){
    System.err.println("aq.executeQuery:"+ex.getMessage());
    }
    return rs;
    }
    public void close(){
    try{
    rs.close();
    stmt.close();
    conn.close();
    }catch(Exception e){
      System.out.println(e.toString());
    }
    }
    }
      

  3.   

    你创建Statement了吗,或者数据库id字段有重复(可能没有synchonized)
      

  4.   

    楼主。你的记录指针不移动怎么行啊。int id=0;
    String id_temp="";
    sql="select * from user_table order by id desc";
    ResultSet rs=data.executeQuery(sql);
    if(rs.next()){
        id=rs.getInt(1);
        id_temp=Integer.toString(id);
    }
      

  5.   

    补充
    在你的bean里
    Statement stmt=null;
    不是Statement stmt;
      

  6.   

    你光查找了数据库并且进行操作,但是你的记录位置移动了吗!提示错误信息说你的游标错误(Invalid operation for the current cursor position--当前游标位置的无效操作)是这样翻译的吧!没有移动记录就直接取值当然要出现错误了!