为啥。为啥。为啥? 谁能告诉我啊。。

yyyhhh0123 2008-01-31 07:33:56
麻烦各位前辈指点意见:我的问题是 如果输入的userName是 数字帐号的话 登录没问题,输入英文帐号就报这样的错:([Microsoft][SQLServer 2000 Driver for JDBC]Value can not be converted to requested type.) 我查了相关资料,还是找不到解决的方法。

首先是jsp页面: 页面头属性<%@ page language="java" pageEncoding="GBK"%>
还有就是2个 文本框: userName 和userPassword


Servlet: 在doGet()
String userName=rquest.getParameter("UserName");
.....

DB: 连接 MS-sqlserver2000 没问题


DAO: public boolean checkUserLogin(String name,String pwd) //验证用户登录信息
{
boolean flag=false;
System.out.println("用户名是:"+name+"密码: "+pwd);
String sql="select * from regUser where userName=? and userPassword=?";

System.out.println("用户登录的sql语句: "+sql);
try{
prepar=conn.prepareStatement(sql);
prepar.setString(1, name);
prepar.setString(2, pwd);
res=prepar.executeQuery();

if(res.next())
{
if(res.getInt(1)>0)
{
flag=true;
System.out.println("恭喜用户登录成功!");
}
else
{
flag=false;
}
}
else
{
flag=false;
System.out.println("很抱歉数据库无用户信息记录");

}
}
catch(Exception e)
{
flag=false;
e.printStackTrace();
}
return flag;
}
...全文
86 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chjx1982 2008-02-01
  • 打赏
  • 举报
回复
可以用select count(*) as count from regUser where userName=? and userPassword=?
这个试试
yyyhhh0123 2008-02-01
  • 打赏
  • 举报
回复
是的。问题就出在 if(res.getInt(1)> 0) ,看来还有 很多东西 需要仔细的了解 才能用! 再次感谢 火龙果
yyyhhh0123 2008-02-01
  • 打赏
  • 举报
回复
谢谢 火龙兄的提醒。。 我试试
  • 打赏
  • 举报
回复
res.getInt(1)>0)
userName是字母时这句怎么可能会对呢?


if(res.next()) { 
if(res.getInt(1)> 0) {
flag=true;
System.out.println("恭喜用户登录成功!");
} else {
flag=false;
}
} else {
flag=false;
System.out.println("很抱歉数据库无用户信息记录");
}


改成下面的试试看:
if(res.next()) { 
flag=true;
System.out.println("恭喜用户登录成功!");
} else {
flag=false;
System.out.println("很抱歉数据库无用户信息记录");
}


PS:以后发帖尽量使用Java标签括起来,缩进一些,否则会看得头晕的。
yyyhhh0123 2008-01-31
  • 打赏
  • 举报
回复
很感谢 lizzz的关注!我的后台数据库 表里的userName,userPassword 都是 varchar 类型啊。。
lizzz 2008-01-31
  • 打赏
  • 举报
回复
res.getInt(1)是username?还是什么?如果是username这个地方有可能报错(在非数字类型的时候)。
lizzz 2008-01-31
  • 打赏
  • 举报
回复
如果字段类型没问题,请参考http://support.microsoft.com/kb/823689
lizzz 2008-01-31
  • 打赏
  • 举报
回复
你的数据库字段username是什么类型的?怀疑是因为试图将一个字符类型输入转换成数字类型报错

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧