产生错误为: java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>注册</title>
</head><body>
your username is:<%=request.getParameter("username")%><br><br>your password is:<%=request.getParameter("pw")%><br><br><%       String name=request.getParameter("username");       String pw=request.getParameter("pw");
   
   String email=request.getParameter("email");
   
   String tel=request.getParameter("tel");
   
       try        {                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                  Connection dbcon=DriverManager.getConnection("jdbc:odbc:efis","sa","");                  PreparedStatement stat=dbcon.prepareStatement(                      "insert register values(?,?,?,?)");                      stat.setString(1,name);                      stat.setString(2,pw);
  
    stat.setString(3,email);
  
    stat.setString(4,tel);                      stat.executeUpdate();
                      out.println("<br><B>Insert successful</B>");
           }           catch(Exception e)           {
                  out.println(e);
           }
%></body>
</html>管理工具 -> 数据源 -> 配置了efis, 怎么还连不上呢.

解决方案 »

  1.   

    检查一下你的数据源配置另外Access应该不支持PreparedStatement
      

  2.   

    thank u 
    I'll check it out
      

  3.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>指尖游戏</title>
    </head><body>
    <p><%
    String username = request.getParameter("username");
    String pw = request.getParameter("pw");
    String email = request.getParameter("email");
    String tel = request.getParameter("tel");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:efis"); //建立数据库链接,jspdata为ODBC数据源名称
    //建立Statement对象
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    ResultSet rs = stmt.executeQuery("insert into from register values(username,pw,email,tel)"); //建立ResultSet(结果集)对象,并执行SQL语句
    %>
    </p>
    <%= rs.setString(1,username) %>
    <%= rs.setString(2,pw) %>
    <%= rs.setString(3,email) %>
    <%= rs.setString(4,tel) %>
    <% 
    rs.close();
    stmt.close(); 
    con.close(); 
    %>错误提示:exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 24 in the jsp file: /insert.jsp
    Generated servlet error:
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\nailgame\org\apache\jsp\insert_jsp.java:68: cannot find symbol
    symbol  : method setString(int,java.lang.String)
    location: interface java.sql.ResultSet
          out.print( rs.setString(1,username) );
                       ^
    An error occurred at line: 25 in the jsp file: /insert.jsp
    Generated servlet error:
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\nailgame\org\apache\jsp\insert_jsp.java:71: cannot find symbol
    symbol  : method setString(int,java.lang.String)
    location: interface java.sql.ResultSet
          out.print( rs.setString(2,pw) );
                       ^
    An error occurred at line: 26 in the jsp file: /insert.jsp
    Generated servlet error:
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\nailgame\org\apache\jsp\insert_jsp.java:74: cannot find symbol
    symbol  : method setString(int,java.lang.String)
    location: interface java.sql.ResultSet
          out.print( rs.setString(3,email) );
                       ^
    An error occurred at line: 27 in the jsp file: /insert.jsp
    Generated servlet error:
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\nailgame\org\apache\jsp\insert_jsp.java:77: cannot find symbol
    symbol  : method setString(int,java.lang.String)
    location: interface java.sql.ResultSet
          out.print( rs.setString(4,tel) );
                       ^
    4 errors org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.</body>
    </html>
      

  4.   

    呵呵,没注意看ResultSet rs = stmt.executeQuery("insert into from register values(username,pw,email,tel)"); //建立ResultSet(结果集)对象,并执行SQL语句
    %>
    </p>
    <%= rs.setString(1,username) %>
    <%= rs.setString(2,pw) %>
    <%= rs.setString(3,email) %>
    <%= rs.setString(4,tel) %>你到底执行插入还是查询??rs只有get方法,没有set方法
      

  5.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>指尖游戏</title>
    </head><body>
    <p><%
    String username = request.getParameter("username");
    String pw = request.getParameter("pw");
    String email = request.getParameter("email");
    String tel = request.getParameter("tel");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:efis"); //建立数据库链接,jspdata为ODBC数据源名称
    //建立Statement对象
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);String sql = "insert into register values('"+username+"','"+email+"','"+email+"','"+tel+"')" ;stmt.executeUpdate(sql) ;
    %>
    插入数据成功!!!
    </p><%
    rs.close();
    stmt.close();
    con.close();
    %>
      

  6.   

    不需要 rs.close(); 对吧去掉后, javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] 查询值的数目与目标字段中的数目不同。<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>指尖游戏</title>
    </head><body>
    <p><%
    String username = request.getParameter("username");
    String pw = request.getParameter("pw");
    String email = request.getParameter("email");
    String tel = request.getParameter("tel");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:efis"); //建立数据库链接,jspdata为ODBC数据源名称
    //建立Statement对象
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);String sql = "insert into register values('"+username+"','"+pw+"','"+email+"','"+tel+"')" ;stmt.executeUpdate(sql) ;
    %>
    插入数据成功!!!
    </p><%
    stmt.close();
    con.close();
    %>
      

  7.   

    你的数据表的字段及字段名?应该少了一个id改一下
    String sql = "insert into register(username, pw, email, tel) values('"+username+"','"+pw+"','"+email+"','"+tel+"')" ;把sql中第一个括号中的4个字段名换成你数据表中的字段名就ok了