String name=(String)session.getAttribute("user"); Connection con=null; PreparedStatement pst1=null;

为什么数据库不能更新呢,username和password都显示为nullConnectioncon=null;PreparedStatementpst1=null;St... 为什么数据库不能更新呢,username和password都显示为null
Connection con=null;
PreparedStatement pst1=null;
String username = request.getParameter("user");
String pwd = request.getParameter("pwd");
//String condition = "update t_user set username='"+username+"',password='"+pwd+"' where username='"+name+"'";
try{

//注册sqlserver的驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(Exception e){
out.println(e);
}
try{
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user";
String user="sa";
String password="";
//获取链接对象
con=DriverManager.getConnection(url,user,password);
//生成执行对象,执行sql语句
pst1=con.prepareStatement("update t_user set username=? password=? where username=?");
pst1.setString(1,username);
pst1.setString(2,pwd);
pst1.setString(3,name);
pst1.executeUpdate();
out.println(name);
out.println(username);
pst1.close();
con.close();
}catch(Exception e){
out.println(e);
}
展开
 我来答
tagiky
2010-10-27 · 超过13用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:83.5万
展开全部
首先,你的request对象肯定没有值,
第二点,你的sql语句写错了,
第三点,你的name值没有定义,
下面是我做的测试,你可以看一下:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

Connection con = null;
PreparedStatement pst1 = null;

String username = "44";//这是第一点
String pwd = "44";
String Nname = "41";//这是第二点

/*
* String username = request.getParameter("user"); String pwd =
* request.getParameter("pwd");
*/

try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user", "sa", "sa");
pst1 = con
.prepareStatement("update userinfo set name=?,pwd=? where name=?");//这是第二点
pst1.setString(1, username);
pst1.setString(2, pwd);
pst1.setString(3, Nname);
pst1.executeUpdate();

out.println(name);
out.println(username);

pst1.close();
con.close();
} catch (Exception e) {
out.println(e);
}

}
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
LiQiqn1017
2010-10-28
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
1.DatabaseName=user ‘user’ 是关键词用于数据库名不符合要求。
2.update t_user set username=? password=? where username=?"
更新一般用的是id如果用姓名,那如果有的人的名字在相同呢?岂不是全都改了。
3.
pst1.close();
con.close();
不能写在try里面 应写在finally里面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjkt51
2010-11-01 · TA获得超过876个赞
知道答主
回答量:498
采纳率:0%
帮助的人:325万
展开全部
你的name空,当然select不到任何数据.所以是空的.
还有set session的时候key部分换一下看看.
如果我没记错的话,给同样的key set是,什么结果都得不到.
比如

session.setAttribute("TestParam", truename);
或者试试request.setAttribute("key", value);
session周期太长了.你一直给同样的session set.也许是我上面说的那种原因.
我不知道记没记错,
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式