JSP中连接数据库又出现了问题,向大家请教
(deletepro.jsp):
id   类别     名称 出厂商 价格 描述  删除 (表格字段)
dddd english ddddd dddddd 22.0 ddddd 删除 (表格内容)
isbn-4-6 computer J2EE企业级应用开发 电子工业出版 56.0 还不错 删除 (表格内容)
现在是想点表格内容中的"删除"就可以转向"deletepro_do.jsp"实现删除其一行
比如点第一个表格内容中的删除,则删除id="dddd"的一行,"id"是主键
deletepro.jsp主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="db" scope="page" class="demo.openDB" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>删除商品</title>
<style type="text/css">
<!--
.STYLE2 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br/><br/><br/>
<center>
<font size="+5" face="华文隶书">删除一个商品</font>
</center>
<br/><br/><br/><br/>
<center>
  <table bgcolor="#FF6666">
    <tr>
      <td width="100">id</td>
      <td width="100" align="center">类别</td>
      <td width="200" align="center">名称</td>
      <td width="150" align="center">出厂商</td>
      <td width="100" align="center">价格</td>
  <td width="150" align="center">描述</td>
  <td width="50" align="center">删除</td>
    </tr>
    <%
  Connection conn=db.getConnection();
  String sql="select * from products";
  Statement stmt=conn.createStatement();
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next()){
 %>
    <tr>
      <td bgcolor="#FFDD33"><%=rs.getString("productid")%></td>
      <td bgcolor="#FFFF00"><%=rs.getString("category")%></td>
      <td bgcolor="#99CC00"><%=rs.getString("name")%></td>
      <td bgcolor="#FFCC99"><%=rs.getString("producer")%></td>
  <td bgcolor="#88FFDD"><%=rs.getFloat("price")%></td>
  <td bgcolor="#DDFC88"><%=rs.getString("descn")%></td>
      <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp"> 
删除</a></span></td>
</tr>
    <%}%>
  </table>
  <br/>
  <br/><br/><br/>
<a href="goodmain.jsp">返回</a>
</center>
</body>
</html>
deletepro_do.jsp主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="db" scope="page" class="demo.openDB" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>删除商品</title>
<style type="text/css">
<!--
.STYLE2 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br/><br/><br/>
<center>
<font size="+5" face="华文隶书">删除一个商品</font>
</center>
<br/><br/><br/><br/>
 <% 
   String id=request.getParameter(Productid);
   Connection conn=db.getConnection();
   Statement stmt=conn.createStatement();
   String sql="delete from products where productid='"+id+"'";
   stmt.executeUpdate(sql);
  %>
  <% response.sendRedirect("deletepro.jsp");%>
</body>
</html>
其中的JAVABEAN是用来连接数据库的,没错的
现在问题是点了表格内容中的删除还是删不掉那一行,请大家帮忙,解决问题后立即给分,我是新手,希望大家赐教

解决方案 »

  1.   

    晕了啊,你根本就没向后台页面提交你需要的id值,当然取不到了。<td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp">
    删除</a></span></td>
    改为:
    <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href='deletepro_do.jsp?productid=<%=rs.getString("productid")%>'>
    删除</a></span></td>然后
    String id=request.getParameter(Productid);
    改为:
    String id=request.getParameter("productid");
      

  2.   

    后台数据是否真没删除还是只是页面记录没有删除??如果后台数据依然存在,检查
       String sql="delete from products where productid='"+id+"'";
       stmt.executeUpdate(sql);
    执行是否正确估计是id没有值
    找一笔productid存在的记录(假设为1000),把
    <a href="deletepro_do.jsp"> 改成 <a href="deletepro_do.jsp?Productid=1000"> 
    试试看有没有把productid为1000的记录删除
      

  3.   

    上面request.setAttribute("id",id)
    删除页String id=request.getAttribute(id);
      

  4.   

    找一笔productid存在的记录(假设为1000),把
    <a href="deletepro_do.jsp"> 改成 <a href="deletepro_do.jsp?Productid=1000"> 
    试试看有没有把productid为1000的记录删除
    试了
    可以删除
      

  5.   

    那就是了
    把<a href="deletepro_do.jsp"> 改成
    <a href="deletepro_do.jsp?productid=<%=rs.getString("productid")%>">
      

  6.   

    <a href="deletepro_do.jsp?productid=<%=rs.getString("productid")%>">
    这样写不行啊
    有这样的错误:
    javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]????????
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:130)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    root cause java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]????????
    sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
    sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5699)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      

  7.   

    哦,双引号有点问题
    改成<a href='deletepro_do.jsp?productid=<%=rs.getString("productid")%>'>
      

  8.   

    javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]????????
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:131)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    root cause java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]????????
    sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
    sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5699)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      

  9.   

    把这一段:
      while(rs.next()){
     %>
        <tr>
          <td bgcolor="#FFDD33"><%=rs.getString("productid")%></td>
          <td bgcolor="#FFFF00"><%=rs.getString("category")%></td>
          <td bgcolor="#99CC00"><%=rs.getString("name")%></td>
          <td bgcolor="#FFCC99"><%=rs.getString("producer")%></td>
      <td bgcolor="#88FFDD"><%=rs.getFloat("price")%></td>
      <td bgcolor="#DDFC88"><%=rs.getString("descn")%></td>
          <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp"> 改成:  while(rs.next()){
      intProductID = rs.getString("productid"); //添加intProductID variable
     %>
        <tr>
          <td bgcolor="#FFDD33"><%=intProductID%></td>
          <td bgcolor="#FFFF00"><%=rs.getString("category")%></td>
          <td bgcolor="#99CC00"><%=rs.getString("name")%></td>
          <td bgcolor="#FFCC99"><%=rs.getString("producer")%></td>
      <td bgcolor="#88FFDD"><%=rs.getFloat("price")%></td>
      <td bgcolor="#DDFC88"><%=rs.getString("descn")%></td>
          <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp?productid=<%=intProductID%>">
      

  10.   

    csdn中加我为好友吧,我不用QQ的:)