你的 tidd 在 if 块里定义的,外面不能访问啊

解决方案 »

  1.   

    你那个SQL语句没问题吗
    我怎么看的那么别扭呢
      

  2.   

    你把
    sqlbean.executeUpdate(UPDATE type SET tname = '"+ tname + "'
     WHERE tid = " + tidd);
    放到if语句当中。
      

  3.   

    if(tid!=null||!tid.equals.("")){
    int tidd=Integer.parseInt(tid);
    }
    没处理异常吧.
      

  4.   

    java.lang.NumberFormatException: null是类型转换错误,可以通过开发工具调试一下,看看tid的值是否正确,是否符合转换规律。
      

  5.   

    以上各位兄弟的方法都试过了,还是不行,干脆把两个jsp文件都贴出来,拜托大家帮忙看看,谢谢了。
    Type_manage.jsp:type列表和管理文件
    %@ page errorPage="error.jsp" %>
    <%@ page contentType="text/html; charset=GBK" language="java" %>
    <%@ page import="java.sql.Integer"%>
    <%@ page import="java.lang.*" %>
    <jsp:useBean id="sqlbean" scope="page" class="config.sql_data"/>
    <% 
     String sql = "Select * FROM type ";
     ResultSet rs = sqlbean.executeQuery(sql);
     String tid = "";
     String tname="";

      <% while(rs.next()){
      tid = rs.getString("tid");
      tname = rs.getString("tname");%>
      <tr>
        <td><%=tid%></td>
        <td><%=tname%></td>
        <td><a href="type_update.jsp?tid=<%=tid%>">修改</a></td>
      </tr>
      <%}
      rs.close();%>type_update.jsp:type更新文件
    <%@ page contentType="text/html; charset=GBK" language="java" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="java.lang.Integer" %>
    <%@ page errorPage="error.jsp" %>
    <jsp:useBean id="sqlbean" scope="page" class="config.sql_data"/>
    <% 
    String tid = null;
     String tname = "";
     int tidd = 0;
     tid = request.getParameter("tid");
    //此处out.print(tid)正常
    if (tid!=null && !tid.equals("")){
       tidd=Integer.parseInt(tid);
    //此处out.print(tidd)正常
    ResultSet rs = sqlbean.executeQuery("Select * FROM type WHERE tid = "+ tidd);
    rs.first();
    tname=rs.getString("tname");
    rs.close();
     if (request.getParameter("action")!=null) {
       String type_update = new String(request.getParameter("type_update").getBytes("ISO-8859-1"),"GBK");
    String sql = "UPDATE type SET tname = '"+ type_update + "' WHERE tid = " + tidd;
    sqlbean.executeUpdate(sql);
      }
    %>

    <body>
    <form name="form1" method="post" action="type_update.jsp?action=ok">

          <tr>
          <td><input type="text" name="type_update" value=<%=tname%> id="type_update"></td>
          <td><input type="submit" name="Submit" value="确定">
        </tr>
      …
    </body>
    在这里从type_manage.jsp点击修改到type_update.jsp是正常的,而在type_update.jsp中submit就出错。我用几乎相同的方法进行type表的delete操作就没有问题。究竟是什么原因呢?辛苦大家给看一下。
    崩溃边缘…人这一辈子不容易啊!
      

  6.   

    ps:一楼的那个sql语句是发帖时写错的,程序里有开始的那个引号。
      

  7.   

    个人感觉应该是从type_manage.jsp传参数tid到type_update.jsp时有问题,也就是在type_update.jsp中的tid = request.getParameter("tid");这里可能有问题,因为如果把这条语句改成tid = "1"(或其他任何常数),update就可以成功。究竟是怎么回事?
      

  8.   

    终于搞定了,是自己太粗心,form那一行改成
    <form name="form1" method="post" action="type_update.jsp?tid=<%=tid%>&action=ok">
    就ok了。
    谢谢大家。^_^