<%@page contentType="text/html;charset=GB2312"%> 
<%@ include file="share/connection.jsp"%> 
<html> 
<body> 
<% 
            String name=request.getParameter("name"); 
            if(name==null){ 
                  name=""; 
}                 byte b[]=name.getBytes("ISO-8859-1"); 
                      name=new String(b);  
          out.print(name); 
          
        String xuefen=request.getParameter("xuefen"); 
        if(xuefen==null){               xuefen="-1"; 

              out.print(xuefen); 
                        //更新数据************************************ 
                      String sql = "update stu set credit=' "+xuefen+"'"+" where stuname=' "+name+"'"; 
                      try{  
                                  stmt.executeUpdate(sql); 
                        
                
                }catch(SQLException e){ 
                        out.print(e);  
              } 
%> 
<center> <p>更新后数据库的记录: 
<% 
        ResultSet rs=stmt.executeQuery("select * from stu"); 
%> 
</p> 
<table boder="" bgcolor="green"> 
<tbody> 
<tr> 
<th width="100">学号 </th> 
<th width="100">姓名 </th> 
<th width="50">学分 </th> 
</tr> 
<%while(rs.next()){%> 
<tr> <td> <%=rs.getInt(1)%> </td> 
    <td> <%=rs.getString(2)%> </td> 
      <td> <%=rs.getString(3)%> </td> 
</tr> 
<% 

%> 
</tbody> </center> <% 
        conn.close(); 
%> 
</body> </html> 
为什么我的更新语句起不了作用,显示结果还是更改前的数据. (测试过了没有异常,传值也没有错).who can help me?????????????????????????????????????????

解决方案 »

  1.   

          String sql = "update stu set credit=' "+xuefen+"'"+" where stuname=' "+name+"'"; 
    这里错了
    改成 
          String sql = "update stu set credit="+xuefen+" where stuname= "+name; 
      

  2.   

    String sql ="update stu set credit='" + xuefen + "'" + " where stuname='"+name+"'"; 
      

  3.   

    String sql = "update stu set credit='"+xuefen+"' where stuname='"+name+"'"; 
      

  4.   

    String sql = "update stu set credit=' "+xuefen+"'"+" where stuname=' "+name+"'"; 
    out.println("<br>---------------------------------<br>");
    out.println(sql);
    out.println("<br>---------------------------------<br>");
    将整个查询字符串放到数据库中运行
      

  5.   

    2楼的正解
    LZ,这种情况一般定义一个变量来测试到底更新成功没有
    int result= stmt.executeUpdate(sql); 
    if(result>0){
    out.print("更新成功");
    }
    else{
    out.print("失败");
    }
    一般失败都是sql的错误
      

  6.   

    2点建议
    1:使用prepareStatement 预变异sql语句,以后执行更快
    2:不要在jsp些sql
      

  7.   

    prepareStatement最好声明成局部的
    而且用完一次之后应该清空prepareStatement中的值
      

  8.   

    String sql = "update stu set credit="+xuefen+" where stuname= "+name; 
    xuefe和nname不能引起来哦,呵呵,以前也犯过这种错.