JSP代码
<%@page contentType="text/html;charset=GB2312"%>
<%@page import="java.sql.*"%>
<%
//从web.xml中获取系统初始参数excel文件的路径和名字 String accessfile = getServletContext().getInitParameter("accessfile");

request.setCharacterEncoding("GB2312"); 
String name= request.getParameter("name");
if (name==null)
name="";
String password = request.getParameter("password");
if (password==null)
password=""; //连接数据库,检查是否为合法用户
//直接用路径访问access文件
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:driver={microsoft access driver (*.mdb)};dbq="+accessfile);
Statement smt = con.createStatement();
String sql = "select * from users where name='"+name+"' and password='"+password+"'";
ResultSet rs = smt.executeQuery(sql);//检查数据库中有无指定学号的学生
if (!rs.next())//输入信息有错误
{
out.println("<font color='red'>输入信息有误,请重新输入!</font>");
}else {
if(rs.getInt("type") == 1)
{response.sendRedirect("admin.jsp");}
else if(rs.getInt("type") == 2)
{response.sendRedirect("teacher.jsp");}
else if(rs.getInt("type") == 3)
{response.sendRedirect("student.jsp");}

con.close();
%>显示的错误为
java.sql.SQLException: No data found
弄了一个晚上了,还没有弄好,精神都快崩溃……

解决方案 »

  1.   

    java.sql.SQLException: No data found 
    先打出sql看看对不对,然后看看这个sql在表里有没有数据?
      

  2.   

    如楼上所说,把SQL打印出来看看,然后把SQL语句那到数据库去执行一下看看有没有结果就清楚了啊.
    还有给个建议:
    一般调用数据库的代码应该单独写到一个类里呢.
      

  3.   

    SQL语句没有问题

    if (!rs.next())//输入信息有错误
    {
    out.println(" <font color='red'>输入信息有误,请重新输入! </font>");
    }else {
    if(rs.getInt("type") == 1)
    {response.sendRedirect("admin.jsp");}
    else if(rs.getInt("type") == 2)
    {response.sendRedirect("teacher.jsp");}
    else if(rs.getInt("type") == 3)
    {response.sendRedirect("student.jsp");}
    } 有错
    但是不知道错哪里
      

  4.   

    那确定你的select *里面有type的话,把type从小写改为大写试试。或者直接select type from然后
    rs.getInt(1)
      

  5.   

    去掉if语句,能正常跳转
    加上if后,就出错了
    代码不正确吗?
      

  6.   

    表名  users
    name  文本
    password  文本
    type  数字
      

  7.   

    这有啥崩溃的,如果这么基础的东西都能把你弄崩溃,赶紧转行,不要学java了
    你把sql语句打印输出来,去数据库一执行,问题就解决了。
      

  8.   

    囧,总算发现错误在哪里了……
    int i = rs.getInt("type");
    if(i == 1)
    {response.sendRedirect("admin.jsp");}
    if(i == 2)
    {response.sendRedirect("teacher.jsp");}
    if(i == 3)
    {response.sendRedirect("student.jsp");}
    这样写,和我以前写的有啥区别啊!!!!!
      

  9.   


    说了多少遍了,SQL语句没错