数据库操作得不到正确返回
public String login(String tableName, String dbuser, String dbpassword) {
Vector user = new Vector();
Vector password = new Vector();
String url = urlRoot + dbName;
String SQLCommand = "SELECT * FROM " + tableName + ";";
//String SQLCommand2 = "SELECT password FROM" + tableName + ";";
String message = null;
try {
Connection con = DriverManager.getConnection(url);
Statement stms = con.createStatement();
ResultSet rs = stms.executeQuery(SQLCommand);
while(rs.next()) {
//System.out.print(rs.getString("name"));
user.add(rs.getString("name"));
password.add(rs.getString("password"));
}
} catch(SQLException sqlExc) {
reportException(sqlExc.getMessage());
}
if(user.contains((String)dbuser))
if(password.contains((String)dbpassword))
message = "你以管理员"+dbuser+"的身份登陆";
else
message = "你输入的密码有误";
else
message = "你输入的用户名不存在";
return message;
}
为什么我总是返回 你输入的用户名不存在?
Vector user = new Vector();
Vector password = new Vector();
String url = urlRoot + dbName;
String SQLCommand = "SELECT * FROM " + tableName + ";";
//String SQLCommand2 = "SELECT password FROM" + tableName + ";";
String message = null;
try {
Connection con = DriverManager.getConnection(url);
Statement stms = con.createStatement();
ResultSet rs = stms.executeQuery(SQLCommand);
while(rs.next()) {
//System.out.print(rs.getString("name"));
user.add(rs.getString("name"));
password.add(rs.getString("password"));
}
} catch(SQLException sqlExc) {
reportException(sqlExc.getMessage());
}
if(user.contains((String)dbuser))
if(password.contains((String)dbpassword))
message = "你以管理员"+dbuser+"的身份登陆";
else
message = "你输入的密码有误";
else
message = "你输入的用户名不存在";
return message;
}
----------------解决方案--------------------------------------------------------
你的数据里面没 有这个用户啊,当然就不存在了,还有,你的SQL语句加个分号干什么
----------------解决方案--------------------------------------------------------
有啊 如果我把我那个前输出NAME语句那一行注释去掉。。
可以输出有这个用户名的啊
SQL语句不都是以 “;”结尾的么
[此贴子已经被作者于2007-1-12 22:39:25编辑过]
----------------解决方案--------------------------------------------------------
在你所有取出来的字符串中,加一个trim()方法,让它的首尾空白处去掉
因为如果你定义了数据库里的长度的话,即使你的字符串没 有那么长,它也会帮你加到那么长的
比如你定义了一列是char(10).当你插入数据是"abcd"时
你取出来的时候就变成了"abcd ",后面有六个空格,这个你比较的时候,当然不会和"abcd"相等了
如果想数据库根据你传入的字符串长度而定长度,你可以让其类型为varchar
----------------解决方案--------------------------------------------------------
哦 原来是这么回事 谢谢版主了
----------------解决方案--------------------------------------------------------
细节尤为重要
----------------解决方案--------------------------------------------------------
版主教训的是 以后注意
----------------解决方案--------------------------------------------------------