ResultSet rs=stmt.executeQuery(sql);出错,可是我查不出来是哪里的错啊

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<jsp:useBean id="stmt" class="com.jdbc.DBHandler" scope="session"/>
<% String lname="",
lpwd="",
usertype="",
name="",
tpwd="",
sql="";
int lid=0;
lname=request.getParameter("lname");
lpwd=request.getParameter("lpwd");
usertype=request.getParameter("usertype");
if(usertype.equals("user"))
{
sql="select * from member where mname='"+lname+"'";
}
ResultSet rs=stmt.executeQuery(sql);

int rowcount=0;
while(rs.next())
{
rowcount++;
if(usertype.equals("users"))
{
lid=rs.getInt("id");
lname=rs.getString("mname");
tpwd=rs.getString("mpwd");
name=rs.getString("name");

}

}

if((rowcount==1)&&(tpwd.equals(lpwd)))
{
if(usertype.equals("user"))
{
session.setAttribute("id",lid);
session.setAttribute("username",lname);
session.setAttribute("name",name);
session.setAttribute("usertype",usertype);
response.sendRedirect("index.jsp");

}
}
else
{
out.println("登录失败!用户名或密码错误,请重新<a href=\"index.jsp\"target=\"_top\">登录</a>");
}

%>
</head>

<body>

</body>
</html>

你可以在这句话上面加一条输出语句,把sql语句输出出来,看后台的运行结果,若后台原封不动的把sql语句输出了,那么你一次类推,把查库的结果输出出来,看有没有错误,查错是非常能锻炼人的,要有耐心,有的时候不是语法上的错误,运行能通过,但不出结果,这是逻辑上得错误这只是排错中最常用的一种方法,你试试,希望能帮到你
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-01
mname='"+lname+"'";
用like试试 mname like '%"+lname+"%'
相似回答