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
弄了一个晚上了,还没有弄好,精神都快崩溃……
<%@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
弄了一个晚上了,还没有弄好,精神都快崩溃……
先打出sql看看对不对,然后看看这个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");}
} 有错
但是不知道错哪里
rs.getInt(1)
加上if后,就出错了
代码不正确吗?
name 文本
password 文本
type 数字
你把sql语句打印输出来,去数据库一执行,问题就解决了。
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");}
这样写,和我以前写的有啥区别啊!!!!!
说了多少遍了,SQL语句没错